如何在JAX-RS服务中获取XML和/或URL(字符串)?

例如在GET方法URL中

@GET
@Produces("application/xml; charset=UTF-8")
public JaxrsPriceWrapper getPrice(@QueryParam("firstId"), @QueryParam("materialId"),...) {
    //here I would like to get whole URL
}


并在POST方法XML中

@POST
public JaxrsOrderWrapper insertOrder(OrderJaxrsVO jaxrsVO) {
    //here the XML
}

最佳答案

这适用于我使用Jersey的情况。添加一个变量;

@Context private UriInfo uriInfo;

..到您的资源类别。这将对资源方法可用。然后你可以打电话

uriInfo.getRequestURI()

例;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.UriInfo;

@Path("/jerseytest")
public class Server
{
    @Context private UriInfo uriInfo;

    @GET
    @Produces(MediaType.APPLICATION_XML)
    public String get()
    {
        System.out.println("jerseytest called: URI = " + uriInfo.getRequestUri());

        return "<response>hello world</response>";
    }
}


编辑:
您可能需要使用@Consumes(MediaType.APPLICATION_XML)注释POST方法以发布数据。

10-07 19:58
查看更多