@PathParam = null

时间:2015-11-13 14:13:31

标签: java rest jax-rs

您好我已经检查了很多帖子,但我还没有发现我遇到的问题。我的PathParam总是为空,任何人都可以告诉我可能是什么问题

界面中的导入:

import javax.servlet.http.HttpServletRequest; 
import javax.ws.rs.PathParam; 
import javax.ws.rs.Produces; 
import javax.ws.rs.QueryParam; 
import javax.ws.rs.core.MediaType;

接口:

@RequestMapping(value="/unhash/{hash}", method = RequestMethod.GET)
@Produces({ MediaType.TEXT_XML, MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
@ResponseBody
Token decryptToken(@PathParam("hash") String token, HttpServletRequest request) throws APIException;

实施:

@Override
public Token decryptToken(String token, HttpServletRequest request) throws APIException {

我在这里看到的并不奇怪,它在查询范围内工作得很好。有任何想法吗?我很困惑。

1 个答案:

答案 0 :(得分:1)

您如何调用您的服务以及您发送HttpServletRequest参数的原因?我在没有HttpServletRequest的情况下使用Jersey实现了你的场景。我用service / unhash / xxx调用服务。它工作正常。

@Path("/service")
public class MyFirstRestService implements Rest {

        @Override
        public Response decryptToken(String token) throws Exception {
        // TODO Auto-generated method stub
        String output="It is success-  Path Pram : "+ token;

        return Response.ok(output).build();
        }

Rest.class:

public  interface Rest {

        @GET
        @Path(value="/unhash/{hash}")
        @Produces({ MediaType.TEXT_XML, MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })

        Response decryptToken(@PathParam("hash") String token) throws Exception;

}

转到http://www.javawebservice.com了解更多信息和示例