0
我最近从Jersey 1.X移动到Jersey 2.1并使用jersey-media-json-jackson(去)序列化到Json。在JUnit(泽西客户端)中反序列化杰克逊列表
在我的JUnit测试中,我想要使用返回List的Web服务。 与Jerey 1.x我曾经使用GenericType。然而,folling代码不与新泽西州2.1工作/杰克逊2.1:
GenericType<Collection<String>> listType = new GenericType<Collection<String>>() {};
assertTrue(target("location").request().get(listType).contains("item"));
崩溃与
org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException:
MessageBodyReader not found for media type=application/json,
type=interface java.util.List, genericType=java.util.Collection<java.lang.String>.
序列化是好的,因为下面的代码:
目标( “位置” ).request()接受(MediaType.APPLICATION_JSON)获得(String.class)。
返回一个有效的JSON字符串
任何想法如何解决?任何工作示例?
版本:
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-common</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>2.1</version>
</dependency>