javax.ws.rs.NotSupportedException:找不到类型为:class的消息正文阅读器

SHI*_* AR 1 java json web-services jersey maven

我尝试在pom.xml中添加以下依赖项

<!-- Jersey-Json -->
    <dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-json</artifactId>
    <version>1.8</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

还有下面的web.xml

<!-- Jersey-Json -->
    <dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-json</artifactId>
    <version>1.8</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

按照其他职位。但是我仍然在

2015-03-31T15:52:08.771 + 0530 WARN:loggerName =“ ojresteasy.core.ExceptionHandler” threadName =“ qtp1558867745-18” txnId =“”无法执行javax.ws.rs.NotSupportedException:无法找到消息正文阅读器对于类型:com.apple.ist.curo.es.data.cdto.RequestCDTO类,内容类型:文本/纯文本; charset = UTF-8,位于org.jboss.resteasy.core.interception.ServerReaderInterceptorContext.throwReaderNotFound(ServerReaderInterceptorContext.java :52)〜[resteasy-jaxrs-3.0.7.Final.jar:na],位于org.jboss.resteasy.core.interception.AbstractReaderInterceptorContext.getReader(AbstractReaderInterceptorContext.java:73)〜[resteasy-jaxrs-3.0.7。 Final.jar:na]位于org.jboss.resteasy.core.interception.AbstractReaderInterceptorContext.proceed(AbstractReaderInterceptorContext.java:50)〜[resteasy-jaxrs-3.0.7.Final.jar:na],位于org.jboss.resteasy.core,位于org.jboss.resteasy.plugins.interceptors.encoding.GZIPDecodingInterceptor.aroundReadFrom(GZIPDecodingInterceptor.java:59)〜[resteasy-jaxrs-3.0.7.Final.jar:na]。在org.jboss.resteasy.core.MessageBodyParameterInjector.inject(MessageBodyParameterInjector.java:150)处截取(AbstractReaderInterceptorContext.java:53)〜[resteasy-jaxrs-3.0.7.Final.jar:na] -jaxrs-3.0.7.Final.jar:na]在org.jboss.resteasy.core.MethodInjectorImpl.injectArguments(MethodInjectorImpl.java:89)〜[resteasy-jaxrs-3.0.7.Final.jar:na]在org .jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:112)〜[resteasy-jaxrs-3.0.7.Final.jar:na] at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:288)〜[resteasy-jaxrs-3.0.7.Final.jar:na]在org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:242)〜[resteasy-jaxrs-3.0.7.Final.jar :na]位于org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:229)〜[resteasy-jaxrs-3.0.7.Final.jar:na]位于org.jboss.resteasy.core.SynchronousDispatcher.invoke (SynchronousDispatcher.java:356)[resteasy-jaxrs-3.0.7.Final.jar:na]在org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:179)[resteasy-jaxrs-3.0.7。 org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:220)的Final.jar:na] org.jboss.resteasy的[resteasy-jaxrs-3.0.7.Final.jar:na] .plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)[resteasy-jaxrs-3.0.7。org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)的Final.jar:[na] javax.servlet.http的[resteasy-jaxrs-3.0.7.Final.jar:na]。 .HttpServlet.service(HttpServlet.java:790)[javax.servlet-api-3.1.0.jar:3.1.0],位于org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:800)[jetty- servlet-9.2.5.v20141112.jar:9.2.5.v20141112],网址为org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:587)[jetty-servlet-9.2.5.v20141112.jar:9.2。 5.v20141112],位于org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)[jetty-server-9.2.5.v20141112.jar:9.2.5.v20141112],位于org.eclipse.jetty org.eclipse.jetty.server.session上的.security.SecurityHandler.handle(SecurityHandler.java:577)[jetty-security-9.2.5.v20141112.jar:9.2.5.v20141112]。SessionHandler.doHandle(SessionHandler.java:223)[jetty-server-9.2.5.v20141112.jar:9.2.5.v20141112]在org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1125) [jetty-server-9.2.5.v20141112.jar:9.2.5.v20141112]在org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)[jetty-servlet-9.2.5.v20141112.jar :org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)上的[9.2.5.v20141112] [jetty-server-9.2.5.v20141112.jar:9.2.5.v20141112]。 org.eclipse.jetty.server.handler.ScopedHandler上的eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1059)[jetty-server-9.2.5.v20141112.jar:9.2.5.v20141112]。在org.eclipse.jetty.server.handler.HandlerWrapper处处理(ScopedHandler.java:141)[jetty-server-9.2.5.v20141112.jar:9.2.5.v20141112]。在org.eclipse.jetty.server.Server.handle(Server.java:497)上的handle(HandlerWrapper.java:97)[jetty-server-9.2.5.v20141112.jar:9.2.5.v20141112] [jetty-server -9.2.5.v20141112.jar:9.2.5.v20141112]在org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)[jetty-server-9.2.5.v20141112.jar:9.2.5 .v20141112]位于org.eclipse.jetty.io上的org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:248)[jetty-server-9.2.5.v20141112.jar:9.2.5.v20141112]。 org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:620)上的AbstractConnection $ 2.run(AbstractConnection.java:540)[jetty-io-9.2.5.v20141112.jar:9.2.5.v20141112] )[jetty-util-9.2.5.v20141112.jar:9.2.5.v20141112]在org.eclipse.jetty.util.thread.QueuedThreadPool $ 3.run(QueuedThreadPool.java:540)[jetty-util-9.2.5 .v20141112.jar:9.2.5。v20141112],位于java.lang.Thread.run(Thread.java:744)[na:1.7.0_51]

我的代码如下:

@POST
@Path(PERSON_SALARY_PATH)
@Produces(MediaType.APPLICATION_JSON)
public String getSalary(@RequestBody RequestCDTO requestCDTO) {
Run Code Online (Sandbox Code Playgroud)

小智 6

在我的代码中,它在下面添加依赖项后起作用

<dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jackson2-provider</artifactId>
        <version>3.0.19.Final</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)


SHI*_* AR 5

添加 @Consumes(MediaType.APPLICATION_JSON) 并确保设置请求标头“Content-Type:application/json”。前者我认为不是必需的,但无论如何你应该保留它。后者是最重要的。由于某种原因,您的请求以“text/plain”标头发送

peeskillet 的上述评论是正确的答案。