Я пытаюсь настроить сеанс кластеризацию с помощью thisJetty сессия кластеризация с использованием пристаней-Maven-плагин
Мой jetty.xml:
....
<Set name="sessionIdManager">
<New id="jdbcIdMgr" class="org.eclipse.jetty.server.session.JDBCSessionIdManager">
<Arg>
<Ref id="Server"/>
</Arg>
<Set name="workerName"><Property name="jetty.jdbcSession.workerName" default="node1"/></Set>
<Set name="scavengeInterval"><Property name="jetty.jdbcSession.scavenge" default="1800"/></Set>
<Call name="setDriverInfo">
<Arg><Property name="jetty.jdbcSession.driverClass"
default="com.mysql.jdbc.jdbc2.optional.MysqlDataSource"/></Arg>
<Arg><Property name="jetty.jdbcSession.connectionURL"
default="jdbc:mysql://${datasource.dbServerName}:${datasource.dbServerPort}/${datasource.dbName}"/></Arg>
</Call>
</New>
</Set>
.....
Мой Пристань-web.xml:
<Get name="Server">
<Get id="jdbcIdMgr" name="sessionIdManager"/>
</Get>
<Set name="sessionHandler">
<New class="org.eclipse.jetty.server.session.SessionHandler">
<Arg>
<New id="jdbcmgr" class="org.eclipse.jetty.server.session.JDBCSessionManager">
<Set name="idManager">
<Ref id="jdbcIdMgr"/>
</Set>
</New>
</Arg>
</New>
</Set>
Проблема в том, что я получаю NPE во время запуска сервера, потому что экземпляр сервера не установлен в мой экземпляр WebAppContext, поэтому я не могу получить свой sessionIdManager, используя:
<Get name="Server">
<Get id="jdbcIdMgr" name="sessionIdManager"/>
</Get>
Я смотрел на Пристань-Maven плагин источников и обнаружил, что сначала он настраивает свой экземпляр WebAppContext, а затем в вызовах setServer:
//set up the webapp and any context provided
this.server.configureHandlers();
configureWebApplication();
this.server.addWebApplication(webApp);
Как я могу правильно настроить свой сеанс кластерного материал?
Вы очень злоупотребляете роль 'jetty-maven-plugin' (для тестирования простых webapps). Возможно, вам лучше сделать ваш проект официальным '$ {jetty.base}', добавив 'start.ini', настроенный для вашего экземпляра. –
@JoakimErdfelt У нас уже есть множество приложений, настроенных для использования плагина jetty-maven. Будет немного дорого переконфигурировать все. Я опубликовал решение, которое я нашел ниже. Это приемлемо? – pomkine