Javax Jersey客户端处理异常

时间:2017-05-18 07:37:28

标签: java json rest maven glassfish

我有一个Maven jersey服务器,它将json对象发送到我的JavaFX客户端,在我的服务器中,我有具有字符串和int的模型类,在客户端模型类中,我尝试使用Stringproperty和IntegerProperty(用于绑定使用和我有适当的getter和setter(setter = name.set(" example"), getter = return name.get))但是当我这样做时我得到

前端和后端都有JSON作为mediatype,当我将客户端模型类变量更改为String和Int时,一切都按预期工作。我想找到一种方法来保持字符串的属性和int的绑定方法,我试图谷歌但没有人似乎有这个问题,有谁知道什么可以解决这个问题,让我使用变量的属性

我抓住了异常 processingException e

e.getCause():null

e.getMessage():

MessageBodyReader not found for media type=application/json, type=interface java.util.List, genericType=java.util.List<models.Users>.
[org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$TerminalReaderInterceptor.aroundReadFrom(ReaderInterceptorExecutor.java:207), org.glassfish.jersey.message.internal.ReaderInterceptorExecutor.proceed(ReaderInterceptorExecutor.java:139), org.glassfish.jersey.message.internal.MessageBodyFactory.readFrom(MessageBodyFactory.java:1109), org.glassfish.jersey.message.internal.InboundMessageContext.readEntity(InboundMessageContext.java:853), org.glassfish.jersey.message.internal.InboundMessageContext.readEntity(InboundMessageContext.java:812), org.glassfish.jersey.client.ClientResponse.readEntity(ClientResponse.java:309), org.glassfish.jersey.client.JerseyInvocation.translate(JerseyInvocation.java:813), org.glassfish.jersey.client.JerseyInvocation.access$600(JerseyInvocation.java:90), org.glassfish.jersey.client.JerseyInvocation$3.call(JerseyInvocation.java:693), org.glassfish.jersey.internal.Errors.process(Errors.java:315), org.glassfish.jersey.internal.Errors.process(Errors.java:297), org.glassfish.jersey.internal.Errors.process(Errors.java:228), org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:422), org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:689), org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:405), org.glassfish.jersey.client.JerseyInvocation$Builder.get(JerseyInvocation.java:301), Repository.UserRepo.getUsers(UserRepo.java:55), cleaner.Cleaner.start(Cleaner.java:35), com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:863), com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326), com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295), java.security.AccessController.doPrivileged(Native Method), com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294), com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95), com.sun.glass.ui.win.WinApplication._runLoop(Native Method), com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191), java.lang.Thread.run(Thread.java:745)]

当我使用postman运行get方法后端工作时,所以告诉我它与客户端的关系。

客户端: 玻璃鱼4.1 泽西岛2.5.1(JAX-RS RI) javax.ws.rs-API-2.0.1

服务器: 玻璃鱼4.1 球衣2.26-b03

提前致谢!

1 个答案:

答案 0 :(得分:1)

将以下依赖项添加到客户端,以提供MessageBodyReader实现,该实现知道如何将传入的JSON字符串反序列化为Users实例。

<dependency> 
  <groupId>com.fasterxml.jackson.jaxrs</groupId> 
  <artifactId>jackson-jaxrs-json-provider</artifactId> 
  <version>2.4.4</version> 
</dependency>