Как динамически настроить свойство WebLogicCluster вне web.xml - PullRequest
3 голосов
/ 10 января 2012

У меня есть веб-приложение, развернутое как файл war в weblogic 10.3.3. Теперь я хочу сделать это приложение кластеризованным. Для этого я использую HttpClusterServlet от Weblogic в качестве балансировщика нагрузки. Согласно документации я могу поместить эту конфигурацию сервлета в файл 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. Расширьте weblogic.servlet.proxy.HttpClusterServlet с помощью собственного сервлета. Это невозможно, класс окончательный.
  2. Используйте фильтр сервлета для перенастройки сервлета. Сервлет больше не доступен через ServletContext (). GetServlet (String) начиная с Java Servlet API 2.1, без прямой замены.
  3. Отражение может быть вариантом, но я не мог найти надежный способ доступа к конфигурации

Все мои попытки перенастроить этот init-param до сих пор не увенчались успехом. Я открыт для любых решений.

1 Ответ

1 голос
/ 17 января 2012

Это может помочь Как вывести сервлет web.xml из init-param? Spring DelegatingFilterProxy для сервлетов? Даже если вы не используете Spring, не составит труда перенести этот сервлет в другой контейнер IoC.

...