如何获取被调用方法resteasy的url

如何获取被调用方法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

我使用Restaeasy(java)创建了一个Rest服务,该服务必须返回调用的相同URL,但带有一个新字符串

呼叫服务示例:

Post=>mybase/myservice/somewrite和一些JSON
|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();
    (...)
}
希望它能帮助你, 蒂埃里