2015-11-13 2 views
0

Привет, я уже проверял много сообщений, но я не нашел проблему, которая происходит со мной. Мой PathParam всегда имеет нулевое значение, может кто-нибудь сказать мне, что может быть проблема@PathParam = null

Импорт в интерфейсе:

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 { 

Я не видел здесь ничего странного, он отлично работает для queryparams. Есть идеи? Я в замешательстве.

+1

Почему вы смешивания Spring с JAX-RS аннотациями? Какой из них вы действительно пытаетесь использовать? –

+0

Если вы пытаетесь использовать JAX-RS, удалите '@ ResponseBody', удалите' @ RequestMapping', добавьте '@ GET' и используйте' @Path ("/ unhash/{hash}") '. Если вы пытаетесь использовать Spring, избавитесь от '@ PathParam' и используйте' @ PathVariable'. и избавиться от '@ Produces' и добавить' производит' в аннотацию '@ RequestMapping'. –

+0

Хорошо, я попробую, я действительно использую весну. –

ответ

1

Как вы называете свое обслуживание и почему вы отправляете параметр HttpServletRequest? Я выполнил ваш сценарий, используя Джерси без HttpServletRequest. И я позвонил в службу поддержки/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 для получения дополнительной информации и примеров