我正在嘗試爲多個虛擬主機設置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
附加一個「X」或任何WAR文件名稱可以更正確部署,雖然在錯誤的道路名稱。
的最後一個問題是,停止或取消部署應用程序的一個實例,打破了所有其他正在運行的情況下,似乎賈克斯RS過濾器被莫名其妙地不安:
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