Java Jersey:在Tomcat上获取rest方法中的客户端IP

时间:2011-05-27 11:58:34

标签: rest tomcat post ip jersey

我有一个在tomcat 6上运行的Jersey rest webservice。我有一个消耗Multipart的@Post方法:

@Path("identify")   
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.APPLICATION_XML)
    public String identifyReception(com.sun.jersey.multipart.MultiPart multiPart) throws Exception {

我想在此方法中获取客户端IP地址。我发现你可以在Get方法中使用@Context HttpServletRequest。但是在post方法中我需要multipart输入参数。我还发现tomcat不支持Servlet规范......

我还能采用其他方式吗?

1 个答案:

答案 0 :(得分:3)

  

我发现你可以在Get方法中使用@Context HttpServletRequest。但是在post方法中我需要多部分输入参数。

我不认为这两者是相互排斥的。让你的方法采用两个参数(我不认为它们在哪个顺序很重要)并用@Context注释其中一个。我相信无论是获取,发布还是其他任何内容都能奏效。您也可以使用@Context注释一个字段,Jersey会在调用您的@GET方法之前为您初始化它。