如何获取被调用方法resteasy的url
我使用Restaeasy(java)创建了一个Rest服务,该服务必须返回调用的相同URL,但带有一个新字符串 呼叫服务示例: Post=>mybase/myservice/somewrite和一些JSON如何获取被调用方法resteasy的url,rest,jakarta-ee,resteasy,Rest,Jakarta Ee,Resteasy,我使用Restaeasy(java)创建了一个Rest服务,该服务必须返回调用的相同URL,但带有一个新字符串 呼叫服务示例: Post=>mybase/myservice/somewrite和一些JSON |Reponse=>mybase/myservice/somewrite/123456 所以我想用一个通用逻辑创建mybase/myservice/somewriteurl,因为如果我把String returnURL=“mybase/myservice/somewrite”和我更改了例如m
|Reponse=>mybase/myservice/somewrite/123456 所以我想用一个通用逻辑创建mybase/myservice/somewriteurl,因为如果我把
String returnURL=“mybase/myservice/somewrite”代码>和我更改了例如mybase的名称
我想要这样的东西
someLogicService(JSON);
id=getId();
URL=getContextCallURL();
return URL+\/+id;
但是我不知道这是否可行,更不用说怎么做了。我找到了问题的答案,我将@context的inject放入我的函数中,并调用absolutPath:
@POST
@Path("/")
@Consumes(MediaType.APPLICATION_JSON)
public Response makeContact(Contact contact, @Context HttpRequest request) {
return Response.ok().header("location", request.getUri().getAbsolutePath().getPath() + contactService.makeContact(contactJSON)).build();
}
您还可以在资源中使用注释Context
插入类型为UriInfo
的实例,如下所述:
@Context
private UriInfo uriInfo;
@POST
@Path("/")
@Consumes(MediaType.APPLICATION_JSON)
public Response makeContact(Contact contact) {
String requestUri = uriInfo.getRequestUri();
(...)
}
希望它能帮助你,
蒂埃里