Java Jersey声明性链接不';行不通
我尝试用Jersey创建一个restfull web服务。我想在回应该请求时提供一个链接:Java Jersey声明性链接不';行不通,java,web-services,rest,jersey,Java,Web Services,Rest,Jersey,我尝试用Jersey创建一个restfull web服务。我想在回应该请求时提供一个链接: 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" } 链接不可生成 查看我的Gtm资
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"
}
链接不可生成
查看我的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;
}
}
怎么了
谢谢你的帮助。
通过参见
您需要以编程方式添加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>
com.sun.jersey.spi.container.ContainerResponseFilters
com.sun.jersey.server.linking.LinkFilter
C:\>curl-ihttp://localhost:8080/gtm
HTTP/1.1200ok
内容类型:application/json
链接:;rel=档案
日期:2014年12月4日星期四12:38:06 GMT
传输编码:分块
{“消息”:“你好”}
<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"}