2017-02-09 76 views
1

我正在嘗試爲多個虛擬主機設置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> 

任何想法可能是錯誤的?

回答

0

我也有這個問題,但是對Tomee來說是新手,我不知道有一個簡單的解決方案。當我將我的web應用程序部署到webapps文件夾時,該應用程序工作正常,但是當我將其部署到服務文件夾時,我得到了同樣的中止。問題是文件夾名稱與戰爭名稱(減.war)不匹配。一旦我解決了這個問題,應用程序運行良好。確保戰爭名稱,文件夾名稱和服務名稱相同。

+0

感謝您的回覆。我最終放棄了這個想法,因爲我也遇到了多個應用程序會干擾的其他問題,所以我決定將三個獨立的TomEE和反向代理實例運行到正確的位置。 – Tim