TomEE具有相同应用程序部署问题的多个主机

问题描述:

我正在尝试为多个虚拟主机设置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来说是新手,我不知道有一个简单的解决方案。当我将我的web应用程序部署到webapps文件夹时,该应用程序工作正常,但是当我将其部署到服务文件夹时,我得到了同样的中止。问题是文件夹名称与战争名称(减.war)不匹配。一旦我解决了这个问题,应用程序运行良好。确保战争名称,文件夹名称和服务名称相同。

+0

感谢您的回复。我最终放弃了这个想法,因为我也遇到了多个应用程序会干扰的其他问题,所以我决定将三个独立的TomEE和反向代理实例运行到正确的位置。 – Tim