プロジェクトの 1 つで統合テストを実行するために Arquillian を使用していますが、アプリケーションが WebLogic 12c R2 コンテナーにデプロイされると、ブラウザー テストを実行するために Arquillian Graphene/Drone によって間違ったポート番号が使用されていることがわかりました。テストによってブラウザが起動されると、WebLogic 管理対象サーバーに割り当てられたポートではなく、WebLogic 管理サーバーに割り当てられたポートが使用されます。これは、コンテナが HTTP 404 エラーを返し、テスト ケースが失敗することを意味します。
さまざまな Arquillian コンポーネントのコードを調べましたが、問題の根本原因を突き止めたと思います。この問題は、WebLogic 管理対象サーバーにアーカイブをデプロイし、Arquillianに戻すメソッドを含む「wls-common」モジュールのRESTUtilsクラスにあるようです。その後、Web ページにアクセスするために Arquillian Graphene/Drone によって使用されます。deploy(CommonWebLogicConfiguration config, Logger logger, Archive<?> archive)
ProtocolMetaData
ProtocolMetaData
このメソッド内には、オブジェクトHTTPContext httpContext = new HTTPContext(adminUrl.getHost(), adminUrl.getPort());
の構築に使用される次のコード行が
あります。ProtocolMetaData
これは、管理対象サーバーに割り当てられたポートではなく、管理ポートが使用されていることを意味します。
根本原因を正しく特定したと仮定すると、この Arquillian コンテナ アダプタを WebLogic 12c R2 で使用できるとは思えません。このアダプタを間違って使用しようとしているのではないかと思います。
POM ファイル内の WebLogic コンテナ アダプタの Maven 依存関係は次のとおりです。
<dependency>
<groupId>org.jboss.arquillian.container</groupId>
<artifactId>arquillian-wls-remote-rest</artifactId>
<version>1.0.0.Final</version>
</dependency>
私の arquillian.xml ファイルのエントリは次のとおりです。
<container qualifier="arquillian-weblogic-rest">
<configuration>
<property name="adminUrl">http://xxxx:7001</property>
<property name="adminUserName">weblogic</property>
<property name="adminPassword">xxxx</property>
<property name="target">wls_server_1</property>
</configuration>
<protocol type="Servlet 3.0">
<property name="host">xxxx</property>
<property name="port">8080</property>
</protocol>
</container>
私が使用しているWebLogicのバージョンは12.2.1です
私の質問は、このコンテナ アダプタを使用して WebLogic 12c R2 コンテナにデプロイしようとしているときに何か不足しているのでしょうか? 他の誰かがこのアダプターを正常に使用していますか?
WebLogic コンテナーは別のホストで実行されているため、リモート アダプターではなく REST アダプターを使用する必要があると思います。リモート アダプターでは、WebLogic コンテナーと同じホストで Arquillian テストを実行する必要があるようです。