Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用@PathParam调用@GET-in-Jersey Rest_Rest_Jax Rs_Jersey 2.0 - Fatal编程技术网

无法使用@PathParam调用@GET-in-Jersey Rest

无法使用@PathParam调用@GET-in-Jersey Rest,rest,jax-rs,jersey-2.0,Rest,Jax Rs,Jersey 2.0,下面是我的Restful API的结构 @GET @Path("/getprovider/{queryKey}/requests/{queryValue}") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) public Response getApiProv(HttpServletRequest request,HttpServletResponse response,@PathParam(

下面是我的Restful API的结构

@GET
@Path("/getprovider/{queryKey}/requests/{queryValue}")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response getApiProv(HttpServletRequest request,HttpServletResponse response,@PathParam("queryKey") String queryKey, @PathParam("queryValue") String queryValue) {
..........
..........
}
当使用下面的url调用它时

它正在显示

HTTP ERROR 500
Problem accessing /v1/getprovider/service/requests/abc_demo
Reason:
java.io.EOFException: No content to map to Object due to end of input

    at org.codehaus.jackson.map.ObjectMapper._initForReading(ObjectMapper.java:2766)

    at org.codehaus.jackson.map.ObjectMapper._readValue(ObjectMapper.java:2682)

    at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1308)

    at org.codehaus.jackson.jaxrs.JacksonJsonProvider.readFrom(JacksonJsonProvider.java:419)

    at com.sun.jersey.json.impl.provider.entity.JacksonProviderProxy.readFrom(JacksonProviderProxy.java:139)

    at com.sun.jersey.spi.container.ContainerRequest.getEntity(ContainerRequest.java:490)

    at com.sun.jersey.server.impl.model.method.dispatch.EntityParamDispatchProvider$EntityInjectable.getValue(EntityParamDispatchProvider.java:123)

    at com.sun.jersey.server.impl.inject.InjectableValuesProvider.getInjectableValues(InjectableValuesProvider.java:86)

    at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$EntityParamInInvoker.getParams(AbstractResourceMethodDispatchProvider.java:153)

    at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:203)

    at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)

    at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302)

    at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)

    at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)

    at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)

    at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)

    at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1542)

    at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1473)

    at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1419)

    at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1409)

    at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:409)

    at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:558)

    at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:733)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)

    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)

    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:503)

    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)

    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:533)

    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)

    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)

    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:429)

    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)

    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)

    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)

    at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)

    at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)

    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)

    at org.eclipse.jetty.server.Server.handle(Server.java:370)

    at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)

    at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:971)

    at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1033)

    at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)

    at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)

    at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)

    at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696)

    at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53)

    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)

    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)

    at java.lang.Thread.run(Thread.java:745)
我不明白为什么它甚至不去法体。请提供帮助。

@Consumes(MediaType.APPLICATION\u JSON)表示请求正文将包含有效的JSON对象,但错误消息表示您尚未提供一个。您是否打算添加
@消耗
,如果是,您是否在请求正文中提供了JSON对象

(请注意,
GET
的请求主体未得到广泛支持,如果您实际尝试使用该内容,则您的端点可能不是幂等的,这是HTTP GET的一个关键属性。如果您确实希望在请求主体中使用JSON,则应切换到
@PUT
@POST
)。您是否打算添加
@消耗
,如果是,您是否在请求正文中提供了JSON对象

(请注意,
GET
的请求主体未得到广泛支持,如果您实际尝试使用该内容,则您的端点可能不是幂等的,这是HTTP GET的一个关键属性。如果您确实希望在请求主体中使用JSON,则应切换到
@PUT
@POST
)。您是否打算添加
@消耗
,如果是,您是否在请求正文中提供了JSON对象

(请注意,
GET
的请求主体未得到广泛支持,如果您实际尝试使用该内容,则您的端点可能不是幂等的,这是HTTP GET的一个关键属性。如果您确实希望在请求主体中使用JSON,则应切换到
@PUT
@POST
)。您是否打算添加
@消耗
,如果是,您是否在请求正文中提供了JSON对象



(请注意,
GET
的请求主体未得到广泛支持,如果您实际尝试使用该内容,则您的端点可能不是幂等的,这是HTTP GET的一个关键属性。如果您确实希望在请求主体中使用JSON,则应切换到
@PUT
@POST
).

我试图从代码中删除@Consumes。但它显示的是不支持的媒体类型。在这种情况下,内容类型应该是什么?@SnehasishJana您使用什么作为客户端?为什么客户端要为GET请求指定一个内容类型头?我在firefox中使用RESTClient。我已经从代码中删除了@Consumes,并且没有提到任何内容类型头。但作为响应,它仍显示状态代码:415不支持的媒体类型。此外,在部署时,我收到了以下警告:HTTP GET方法……不应使用任何实体。同样在服务器日志中,下面是调用SEVERE时的错误消息:Java类javax.servlet.http.HttpServletRequest的消息体读取器和Java类型接口javax.servlet.http.HttpServletRequest,并且MIME媒体类型应用程序/八位字节流不可用found@SnehasishJana您是否在JAX-RS类中有另一个未显示的成员注入会导致读取请求正文(例如,
@FormParam
)?否则,我不确定调用getEntity的原因。@SnehasishJana您需要
@Context
像这样注入
HttpServletRequest/Response
。我试图从代码中删除@Consumes。但它显示的是不支持的媒体类型。在这种情况下,内容类型应该是什么?@SnehasishJana您使用什么作为客户端?为什么客户端要为GET请求指定一个内容类型头?我在firefox中使用RESTClient。我已经从代码中删除了@Consumes,并且没有提到任何内容类型头。但作为响应,它仍显示状态代码:415不支持的媒体类型。此外,在部署时,我收到了以下警告:HTTP GET方法……不应使用任何实体。同样在服务器日志中,下面是调用SEVERE时的错误消息:Java类javax.servlet.http.HttpServletRequest的消息体读取器和Java类型接口javax.servlet.http.HttpServletRequest,并且MIME媒体类型应用程序/八位字节流不可用found@SnehasishJana您是否在JAX-RS类中有另一个未显示的成员注入会导致读取请求正文(例如,
@FormParam
)?否则,我不确定调用getEntity的原因。@SnehasishJana您需要
@Context
像这样注入
HttpServletRequest/Response
。我试图从代码中删除@Consumes。但它显示的是不支持的媒体类型。在这种情况下,内容类型应该是什么?@SnehasishJana您使用什么作为客户端?为什么客户端要为GET请求指定一个内容类型头?我在firefox中使用RESTClient。我已经从代码中删除了@Consumes,并且没有提到任何内容类型头。但作为响应,它仍显示状态代码:415不支持的媒体类型。此外,在部署时,我收到了以下警告:HTTP GET方法……不应使用任何实体。同样在服务器日志中,下面是调用SEVERE时的错误消息:Java类javax.servlet.http.HttpServletRequest的消息体读取器和Java类型接口javax.servlet.http.HttpServletRequest,并且MIME媒体类型应用程序/八位字节流不可用found@SnehasishJana在JAX-RS类中是否有另一个成员注入,但您没有说明这会导致