java - 如何在 web.xml 之外动态配置 WebLogicCluster 属性

标签 java servlets weblogic web.xml cluster-computing

我在 weblogic 10.3.3 中将一个 Web 应用程序部署为 war 文件。现在我想让这个应用程序可以集群化。为此,我使用 Weblogic 的 HttpClusterServlet 作为负载平衡器。根据documentation我可以将这个 servlet 配置放入 web.xml

  <servlet>
    <servlet-name>HttpClusterServlet</servlet-name>
    <servlet-class>weblogic.servlet.proxy.HttpClusterServlet</servlet-class>

    <init-param>
      <param-name>WebLogicCluster</param-name>
      <param-value>server-1:7122|server-1:7123</param-value>
    </init-param>
  </servlet>

问题是这个配置在构建时是硬连接的,不能在运行时重新配置。例如,我希望能够动态添加 5 个服务器。我有几个想法来解决这个问题:

  1. 用自己的 servlet 实现扩展 weblogic.servlet.proxy.HttpClusterServlet。这是不可能的,该类(class)是 final类。
  2. 使用 servlet 过滤器重新配置 servlet。无法再通过 ServletContext().getServlet(String) 访问 servlet从 Java Servlet API 2.1 开始,没有直接的替代品。
  3. 反射可能是一个选项,但我想不出一个可靠的方法来访问配置

到目前为止,我在外部重新配置此 init-param 的所有尝试都失败了。我愿意接受任何解决方案。

最佳答案

这可能对 How to externalize web.xml servlet init-param? Spring DelegatingFilterProxy for Servlets? 有所帮助,即使您不使用 Spring,将该 servlet 移植到另一个 IoC 容器也不会太难。

关于java - 如何在 web.xml 之外动态配置 WebLogicCluster 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8800789/

相关文章:

java - 将 Java 7 升级到 Java 8 - Java 8 字符串开关是否已弃用?

java - 从批处理文件调用java - 如何拆分JVM和主方法参数?

java - session 可以根据服务器负载定期回收吗?

java - jsp servlet表单获取复选框/选择表达式语言的值

java - quartz 工作内部注入(inject)

java - OpenCV Android(java)字符检测和字体识别

java - 我在调用 Java 中的静态递归方法时遇到问题

java - 从两种不同的形式获取 servlet 中的值

weblogic - Java 无法从 Oracle AQ 中取出消息

java - 实现远程JMS服务器