我正在尝试在Maven中使用Arquillian测试JakartaEE应用程序。由于生产性应用程序应在Payara Micro上运行,因此我选择了Payara Micro Remote依赖项来与远程服务器进行通信:
<dependencies>
<dependency>
<groupId>org.jboss.arquillian.junit</groupId>
<artifactId>arquillian-junit-container</artifactId>
<version>1.6.0.Final</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>fish.payara.arquillian</groupId>
<artifactId>payara-micro-remote</artifactId>
<version>2.2</version>
<scope>test</scope>
/dependency>
</dependencies>
执行测试时,出现以下错误:
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 1.325 s <<< FAILURE! - in com.mycompany.SomeTestClass
[ERROR] com.mycompany.SomeTestClass Time elapsed: 1.325 s <<< ERROR!
java.lang.IllegalArgumentException: Deployment failed. Payara Micro Deployer at http://localhost:8080/micro-deployer returned 404
我也曾尝试将Payara Micro Deployer部署到远程Payara Micro Server,如下所示:
<plugin>
<groupId>fish.payara.maven.plugins</groupId>
<artifactId>payara-micro-maven-plugin</artifactId>
<version>1.0.7</version>
<configuration>
<daemon>true</daemon>
<commandLineOptions>
<commandLineOption>
<key>--deployFromGAV</key>
<value>"fish.payara.arquillian,payara-micro-deployer,2.2"</value>
</commandLineOption>
</commandLineOptions>
</configuration>
<!-- ...some cother settings... -->
</plugin>
但这导致了
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 1.34 s <<< FAILURE! - in com.mycompany.SomeTestClass
[ERROR] com.mycompany.SomeTestClass Time elapsed: 1.34 s <<< ERROR!
java.lang.IllegalArgumentException: Deployment failed. Payara Micro Deployer at http://localhost:8080/micro-deployer returned 403
我做错了什么?是否有关于如何使用Payara Micro Remote工作的Arquillian的描述或示例项目?
我正在使用的Payara Micro版本是5.194。
谢谢你!
检查了Payara Micro的部署路径之后,>
GET /payara-micro-deployer/application.wadl DELETE /payara-micro-deployer/application/{name} PUT /payara-micro-deployer/application/{name}
并深入研究Payara Micro Remote连接器的配置(https://github.com/payara/ecosystem-arquillian-connectors/blob/master/payara-micro-remote/src/main/java/fish/payara/arquillian/container/payaramicro/remote/PayaraMicroRemoteContainerConfiguration.java)的源代码
/** * Get path payara-micro-deployer resides at. * @return */ public String getDeployerContextPath() { return deployerContextPath; }
我找到了解决方案。
我必须按如下所示在arquillian.xml中配置Payara Micro的部署路径:
<configuration>
<property name="deployerContextPath">/payara-micro-deployer</property>
</configuration>