2017-02-09 24 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 

2番目の問題は、最初に名前が変更されない限り、1つのWARファイルがホストの1つ(以下のger400-d)にデプロイされないことです。それは問題なく他のすべてに展開されます。生成されたログメッセージはこれです:WARファイル名に「X」または何を追加は

SCHWERWIEGEND - Error merging Java EE JNDI entries in to war /webspi: Exception: null java.lang.NullPointerException 

は、それが間違ったパス名にもかかわらず、正常に展開します。

最後の問題は、アプリの1つのインスタンスを停止またはアンデプロイすると、他のすべての実行中のインスタンスを壊すということです、ジャックスの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には新しく、単純な解決策があることはわかりませんでした。 webappsフォルダにWebアプリケーションをデプロイすると、アプリケーションは正常に動作しましたが、サービスフォルダにデプロイしたときも同じ結果が得られました。問題は、フォルダ名が戦争名(.warを除いたもの)と一致しなかったことです。いったん私はそれを修正し、アプリは正常に働いた。戦争名、フォルダ名、サービス名が同じであることを確認してください。

+0

返信いただきありがとうございます。私は最後にアイデアをあきらめました。なぜなら、複数のアプリケーションが干渉するような別の問題もありました.3つの独立したTomEEインスタンスとリバースプロキシを正しいものにすることにしました。 – Tim

関連する問題