使用Arquillian Payara Micro Remote测试JakartaEE应用程序

问题描述 投票:0回答:1

我正在尝试在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。

谢谢你!

maven testing jboss-arquillian payara payara-micro
1个回答
0
投票

检查了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>
© www.soinside.com 2019 - 2024. All rights reserved.