WSO2 Integrator 6.1.1 Репликация сеанса HTTP: несериализуемый атрибут CarbonAuthenticator
У меня есть 2 WSO2 Enterprise Integrator за балансировщиком нагрузки.
Я хочу активировать репликацию сеанса tomcat http и следовать документации WSO2. Это кажется довольно простым: Добавить
<Cluster className="org.wso2.carbon.core.session.CarbonTomcatSimpleTcpCluster"/>
and
<Valve className="org.wso2.carbon.webapp.mgt.session.CarbonTomcatSessionReplicationValve"/>
in catalina-server.xml, and make application distributable by adding <distributable/>
в web.xml.
Плохо, что WSO2 добавляет некоторые не сериализуемые атрибуты в сеанс, что приводит к сбою репликации. Когда я пытаюсь подключиться к углеродному приложению, я получаю следующее исключение:
ERROR - ApplicationDispatcher Servlet.service() for servlet bridgeservlet threw exception java.lang.IllegalArgumentException: setAttribute: Non-serializable attribute CarbonAuthenticator
at org.apache.catalina.session.StandardSession.setAttribute(StandardSession.java:1453)
at org.apache.catalina.session.StandardSession.setAttribute(StandardSession.java:1413)
at org.apache.catalina.session.StandardSessionFacade.setAttribute(StandardSessionFacade.java:149)
at org.eclipse.equinox.http.servlet.internal.HttpSessionAdaptor.setAttribute(HttpSessionAdaptor.java:96)
at org.wso2.carbon.ui.tracker.AuthenticatorRegistry.getCarbonAuthenticator(AuthenticatorRegistry.java:82)
at org.wso2.carbon.ui.CarbonUILoginUtil.getAuthenticator(CarbonUILoginUtil.java:69)
at org.wso2.carbon.ui.CarbonSecuredHttpContext.handleSecurity(CarbonSecuredHttpContext.java:76)
at org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:60)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:128)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:68)
Точность: я пытался с новой установкой WSO2EI 6.1.1, делая только ранее описанные модификации.
Мне также пришлось вручную добавить tomcat-juli-7.0.75.jar и tomcat-trives-7.0.75.jar в wso2/lib/, чтобы избежать исключения ClassNotFoundException.
Я проверил исходный код WSO2 и увидел, что класс CarbonAuthenticator фактически не сериализуем.
Кто-нибудь уже успешно настроил репликацию http сессии?
Заранее спасибо,
С Уважением,
Laurent