查看JAX-RS客户端的确切HTTP请求/响应通信

时间:2014-02-22 17:56:53

标签: java jax-rs jboss-arquillian

我正试图通过查看我的客户端发送的HTTP

来弄清楚如何调试我的测试
testPutActivitity(com.lm.controller.JaxRSActivatorTest)  Time elapsed: 0.521 sec  <<< FAILURE!
java.lang.AssertionError: expected:<404> but was:<200>
    at org.junit.Assert.fail(Assert.java:88)
    at org.junit.Assert.failNotEquals(Assert.java:743)
    at org.junit.Assert.assertEquals(Assert.java:118)
    at org.junit.Assert.assertEquals(Assert.java:555)
    at org.junit.Assert.assertEquals(Assert.java:542)
    at com.lm.controller.JaxRSActivatorTest.testPutActivitity(JaxRSActivatorTest.java:44)

使用新的服务器,有些东西似乎已经改变了,所以我发现的文档似乎不再相关。

我想知道的是如何查看从客户端传输的HTTP请求/响应? (如果重要的话我应该使用RESTEasy客户端)

package com.lm.controller;

import com.lm.test.RESTCtrlTestBase;
import static com.lm.test.TestUtil.testWar;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.Response;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.shrinkwrap.api.Filters;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import static org.junit.Assert.assertEquals;
import org.junit.Test;

public class RootTest extends RESTCtrlTestBase {

    public RootTest() {
    }

    Client client = ClientBuilder.newClient();

    @Deployment( testable = false )
    public static WebArchive createDeployment() {
        WebArchive ar = testWar()
                .addPackages(
                        false,
                        Filters.exclude( ".*Test.*" ),
                        "com.lm.controller",
                        "com.lm.activity"
                );
        // System.out.println( "ar = " + ar.toString( true ) );
        return ar;
    }

    @Test
    public void getRoot() {
        WebTarget target = client.target( deploymentURI );
        log.debug( "targetURI = {}", target.getUri() );
        Response res = target.request().get();
        assertEquals( 200, res.getStatus() );
    }
}

我已经尝试编写interceptor,但它并没有完全按照传输的方式输出请求/响应,它似乎只是为服务器而不是上面的测试客户端加载。

0 个答案:

没有答案