Web services Arquillian API REST示例

Web services Arquillian API REST示例,web-services,testing,jax-rs,jboss-arquillian,Web Services,Testing,Jax Rs,Jboss Arquillian,我找不到任何使用arquillian进行jax-rs测试的示例。我使用wildfly 10管理的容器 我正在尝试自己做这件事,这是我的示例代码: @RunWith(Arquillian.class) public class DeploymentTest { @Deployment(testable = false) public static Archive<?> deploy() { return ShrinkWrap.create(WebArchive.class,

我找不到任何使用arquillian进行jax-rs测试的示例。我使用wildfly 10管理的容器

我正在尝试自己做这件事,这是我的示例代码:

@RunWith(Arquillian.class)
public class DeploymentTest {

 @Deployment(testable = false)
public static Archive<?> deploy() {
    return ShrinkWrap.create(WebArchive.class, "cos-arq-test.war")
            .addClasses(MANUEJB.class, HelloWorld.class, HelloWorldRESTImpl.class)
            .addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml");
}

@ArquillianResource
private URL base;

private static WebTarget target;

@Before
public void setUpClass() throws MalformedURLException {
    Client client = ClientBuilder.newClient();
    target = client.target(URI.create(new URL(base, "rest/helloWorldREST").toExternalForm()));
}

@Test
@RunAsClient
public void testResponse(@ArquillianResource URL base) throws InterruptedException, ExecutionException {

    System.out.println("====================================================");
    System.out.println("This test should run inside the Wildfly 10 container");
    System.out.println("====================================================");

    try {
        System.out.println("URL TARGET: " + target.getUri().toURL().toString());
    } catch (MalformedURLException e) {
        e.printStackTrace();
    }

    assertEquals("Hello", target.request().get().readEntity(String.class));

    /*

    Future<Response> r1 = target.request().async().get();

    Response response = r1.get();

    if (null != response) {

        assertEquals(HttpStatus.OK, response.getStatus());

        assertNotNull(response.getEntity());

        assertEquals("Hello " + "manuel" + "!", response.readEntity(String.class));
    }

    */
 }

}
但是我得到一个错误,它没有找到服务

我使用arquillian库和托管的wildfly 10容器:

    <dependency>
         <groupId>org.jboss.arquillian</groupId>
          <artifactId>arquillian-bom</artifactId>
          <version>1.1.11.Final</version>
          <scope>import</scope>
          <type>pom</type>
    </dependency>

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
    </dependency>

    <dependency>
        <groupId>org.jboss.arquillian.junit</groupId>
        <artifactId>arquillian-junit-container</artifactId>
    </dependency>

    <dependency>
        <groupId>org.wildfly.arquillian</groupId>
        <artifactId>wildfly-arquillian-container-managed</artifactId>
        <version>2.0.0.Final</version>
    </dependency>
<arquillian xmlns="http://jboss.org/schema/arquillian"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://jboss.org/schema/arquillian http://jboss.org/schema/arquillian/arquillian_1_0.xsd">

<container qualifier="wildfly10" default="true">
    <configuration>
        <property name="jbossHome">/home/manumg/test-containers/wildfly-10.1.0.Final</property>
    </configuration>
</container>

org.jboss.arquillian
阿奎利安bom
1.1.11.最终版本
进口
聚甲醛
朱尼特
朱尼特
4.12
org.jboss.arquillian.junit
arquillian junit容器
org.wildfly.arquillian
wildfly arquillian容器管理
2.0.0.1决赛
这是我对容器的arquillian配置:

    <dependency>
         <groupId>org.jboss.arquillian</groupId>
          <artifactId>arquillian-bom</artifactId>
          <version>1.1.11.Final</version>
          <scope>import</scope>
          <type>pom</type>
    </dependency>

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
    </dependency>

    <dependency>
        <groupId>org.jboss.arquillian.junit</groupId>
        <artifactId>arquillian-junit-container</artifactId>
    </dependency>

    <dependency>
        <groupId>org.wildfly.arquillian</groupId>
        <artifactId>wildfly-arquillian-container-managed</artifactId>
        <version>2.0.0.Final</version>
    </dependency>
<arquillian xmlns="http://jboss.org/schema/arquillian"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://jboss.org/schema/arquillian http://jboss.org/schema/arquillian/arquillian_1_0.xsd">

<container qualifier="wildfly10" default="true">
    <configuration>
        <property name="jbossHome">/home/manumg/test-containers/wildfly-10.1.0.Final</property>
    </configuration>
</container>

/家用/制造/测试容器/wildfly-10.1.0.Final

有关初学者示例,您可以看到

自述文件中描述的代码位于相同的存储库中

对于初学者maven项目,我建议您使用maven原型wildfly jakartaee webapp原型,与wildfly 21(jakarta ee 8容器)相关

要运行测试,您必须:

  • 激活arq管理的配置文件
  • 下载Wildfly 21(从)
  • 定义JBOSS_HOME变量(指向本地Wildfly目录)

  • 对于初学者示例,您可以看到

    自述文件中描述的代码位于相同的存储库中

    对于初学者maven项目,我建议您使用maven原型wildfly jakartaee webapp原型,与wildfly 21(jakarta ee 8容器)相关

    要运行测试,您必须:

  • 激活arq管理的配置文件
  • 下载Wildfly 21(从)
  • 定义JBOSS_HOME变量(指向本地Wildfly目录)

  • 您是否收到例外情况?是服务器找不到您的服务,还是客户端找不到REST服务?请共享此异常。很抱歉,我用@ApplicationPath(“/services”)公共类JAXRActivator扩展了应用程序{}解决了此问题。是否收到异常?是服务器找不到您的服务,还是客户端找不到REST服务?请共享此异常。很抱歉,我用@ApplicationPath(“/services”)公共类JAXRActivator扩展了应用程序{}