Java 泽西客户端单元测试

Java 泽西客户端单元测试,java,junit,jersey,jersey-client,Java,Junit,Jersey,Jersey Client,我已经设置了一个Jersey资源,它可以在浏览器中完美地返回列表。但是我不能让它在我的单元测试中运行。我确实收到了错误消息: A message body writer for Java class java.util.ArrayList, and Java type java.util.List<at.sunfinder.dto.Location>, and MIME media type application/json was not found <de

我已经设置了一个Jersey资源,它可以在浏览器中完美地返回列表。但是我不能让它在我的单元测试中运行。我确实收到了错误消息:

A message body writer for Java class java.util.ArrayList, and Java type java.util.List<at.sunfinder.dto.Location>, and MIME media type application/json was not found
        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-servlet</artifactId>
            <version>1.18.1</version>
        </dependency>

        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-client</artifactId>
            <version>1.18.1</version>
        </dependency>
以及我的单元测试:

@Test
    public void testGetWeather(){       

        Client client = Client.create();         


        WebResource webResource = client.resource(url); 
        ClientResponse response = webResource.accept("application/json").get(ClientResponse.class);

        List<Location> locations = null;

        if(response.getClientResponseStatus() == ClientResponse.Status.OK){
            locations = response.getEntity(new GenericType<List<Location>>(){});
        }

        assertTrue(locations.size()> 0);
    }
        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-servlet</artifactId>
            <version>1.18.1</version>
        </dependency>

        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-client</artifactId>
            <version>1.18.1</version>
        </dependency>
@测试
public void testGetWeather(){
Client=Client.create();
WebResource=client.resource(url);
ClientResponse response=webResource.accept(“application/json”).get(ClientResponse.class);
列表位置=空;
if(response.getClientResponseStatus()==ClientResponse.Status.OK){
locations=response.getEntity(新的GenericType(){});
}
assertTrue(locations.size()>0);
}
My pom xml具有以下依赖项: 泽西岛 泽西服务器 1.18.1

        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-servlet</artifactId>
            <version>1.18.1</version>
        </dependency>

        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-client</artifactId>
            <version>1.18.1</version>
        </dependency>

泽西岛
泽西servlet
1.18.1
泽西岛
泽西岛客户
1.18.1

您的测试似乎正在请求应用程序/json格式,但您的位置DTO无法解析它。尝试将测试更改为请求应用程序/xml,即:

        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-servlet</artifactId>
            <version>1.18.1</version>
        </dependency>

        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-client</artifactId>
            <version>1.18.1</version>
        </dependency>
或者,确保DTO也可以解析json(通过提供@JsonProperty注释)

        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-servlet</artifactId>
            <version>1.18.1</version>
        </dependency>

        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-client</artifactId>
            <version>1.18.1</version>
        </dependency>