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>