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

时间:2012-01-10 09:11:09

标签: java servlets weblogic web.xml cluster-computing

我在weblogic 10.3.3中将一个Web应用程序部署为war文件。现在我想使这个应用程序可以集群化。为此,我使用Weblogic中的HttpClusterServlet作为负载均衡器。根据{{​​3}}我可以将这个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。这是不可能的,课程是最终的。
  2. 使用servlet过滤器重新配置servlet。自Java Servlet API 2.1起,documentation无法再访问servlet,无法直接替换。
  3. 反射可能是一种选择,但我无法找到一种可靠的方式来访问配置
  4. 到目前为止,我在外部重新配置此init-param的所有尝试都失败了。我愿意接受任何解决方案。

1 个答案:

答案 0 :(得分:1)

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