2014-12-04 2 views
2

Я пытаюсь сделать restfull веб-сервис с Джерси. Я хотел бы дать ссылку в ответ на эту просьбу:Джерси декларативная ссылка не работает

GET /mac/ws/gtm HTTP/1.1 
Host: localhost:8080 
Accept: application/json 
Cache-Control: no-cache 

Я хочу ответ быть:

HTTP/1.1 200 OK 
link: </dossiers>;rel=dossiers 

{ 
    "message": "Hello" 
} 

Но ответ:

HTTP/1.1 200 OK 

{ 
    "message": "Hello" 
} 

Ссылка не производить!

Посмотрите мой Gtm ресурс:

@Component 
@Path("/gtm") 
public class GTmRessource 
{ 
    @GET 
    @Produces(MediaType.APPLICATION_JSON) 
    public GTm getJson() 
    { 
     GTm gtm = new GTm(); 
     return gtm; 
    } 
} 

И мой Gtm сущность

@XmlRootElement() 
@Link(value = @Ref(value = "/dossiers", method = "get"), rel = "dossiers") 
public class GTm 
{ 
    String message = "Hello"; 

    public String getMessage() 
    { 
     return message; 
    } 

    public void setMessage(String message) 
    { 
     this.message = message; 
    } 
} 

Что случилось?

Спасибо за помощь. По

ответ

1

См Declarative Hyperlinking: Configuration

Вы должны добавить LinkFilter либо программно:

resourceConfig.getContainerResponseFilters().add(LinkFilter.class); 

или через web.xml

<init-param> 
    <param-name>com.sun.jersey.spi.container.ContainerResponseFilters</param-name> 
    <param-value>com.sun.jersey.server.linking.LinkFilter</param-value> 
</init-param> 

C:\>curl -i http://localhost:8080/gtm 

HTTP/1.1 200 OK 
Content-Type: application/json 
Link: </dossiers>;rel=dossiers 
Date: Thu, 04 Dec 2014 12:38:06 GMT 
Transfer-Encoding: chunked 

{"message":"Hello"} 
+0

Да это работает ! Ты сверхчеловек! Спасибо, много! – user4324018

Смежные вопросы