Я пытаюсь настроить TomEE (7.0.2) на несколько виртуальных хостов для сред разработки и тестирования, те же приложения, как правило, будут развернуты на всех хостах. Я обнаружил из this сообщение, как избежать конфликтов именования JNDI, что в значительной степени решило проблему неудачных развертываний, но теперь у меня есть несколько других проблем.Несколько хостов TomEE с теми же проблемами развертывания приложений
Первая проблема заключается в том, что я все еще получаю следующие серьезные ошибки в журнале, хотя они, кажется, не влияют на работу приложения, я не знаю, как избавиться от них:
SCHWERWIEGEND - Jndi(name=global/webspi/DefaultStoredProcedureResolver) cannot be bound to Ejb(deployment-id=1774342742/ger400-q/2-webspi/webspi/DefaultDatasourceConnectorService). Name already taken by Ejb(deployment-id=-1143530541/ger400-t/1-webspi/webspi/DefaultStoredProcedureResolver
Вторая проблема заключается в том, что один файл WAR не будет развертываться на одном из хостов (ger400-d ниже), если он не будет переименован первым. Он будет развертываться для всех остальных без проблем. Сообщение журнала генерируется так:
SCHWERWIEGEND - Error merging Java EE JNDI entries in to war /webspi: Exception: null java.lang.NullPointerException
Добавляя «х» или что-то к имени файла WAR делает его развернуть правильно, хотя и с неправильным именем пути.
Последний вопрос в том, что остановка или отмены развертывания одного экземпляра приложения, нарушает все другие запущенные экземпляры, кажется, что RS фильтры Jax в настоящее время нарушается как-то:
javax.servlet.ServletException: Error processing webservice request
org.apache.tomee.webservices.CXFJAXRSFilter.doFilter(CXFJAXRSFilter.java:98)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
org.apache.openejb.server.httpd.EEFilter.doFilter(EEFilter.java:65)
org.webspi.CORSFilter.doFilter(CORSFilter.java:61)
root cause
java.lang.NullPointerException
org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:252)
org.apache.openejb.server.cxf.rs.CxfRsHttpListener.doInvoke(CxfRsHttpListener.java:251)
org.apache.tomee.webservices.CXFJAXRSFilter.doFilter(CXFJAXRSFilter.java:94)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
org.apache.openejb.server.httpd.EEFilter.doFilter(EEFilter.java:65)
org.webspi.CORSFilter.doFilter(CORSFilter.java:61)
Соответствующая часть server.xml
является
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
</Host>
<Host name="ger400-d" appBase="/usr/tomee-webapps/d" unpackWARs="true" autoDeploy="true">
<Alias>ger400-d.ourcompany.com</Alias>
</Host>
<Host name="ger400-t" appBase="/usr/tomee-webapps/t" unpackWARs="true" autoDeploy="true">
<Alias>ger400-t.ourcompany.com</Alias>
</Host>
<Host name="ger400-q" appBase="/usr/tomee-webapps/q" unpackWARs="true" autoDeploy="true">
<Alias>ger400-q.ourcompany.com</Alias>
</Host>
<Host name="ger400-r" appBase="/usr/tomee-webapps/r" unpackWARs="true" autoDeploy="true">
<Alias>ger400-r.ourcompany.com</Alias>
</Host>
Любые идеи, что может быть неправильным?
Спасибо за ответ. В конце концов я отказался от этой идеи, так как у меня также возникли другие проблемы, когда несколько приложений будут вмешиваться, поэтому я решил запустить три независимых экземпляра TomEE и обратного прокси-сервера в правильном порядке. – Tim