我在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个服务器。我有几个想法来解决这个问题:
使用自己的servlet实现扩展weblogic.servlet.proxy.HttpClusterServlet。这是不可能的,这堂课是期末考试。
使用servlet过滤器重新配置servlet。自从JavaServletAPI2.1以来,Servlet不再可以通过ServletContext().getServlet(String)访问,而且没有直接替换。
反射可能是一个选项,但我无法找到可靠的方法来访问配置
到目前为止,我在外部重新配置这个init参数的所有尝试都失败了。我愿意接受任何解决办法。

最佳答案

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

09-10 08:00
查看更多