我有一个在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规范......
我还能采用其他方式吗?
答案 0 :(得分:3)
我发现你可以在Get方法中使用@Context HttpServletRequest。但是在post方法中我需要多部分输入参数。
我不认为这两者是相互排斥的。让你的方法采用两个参数(我不认为它们在哪个顺序很重要)并用@Context
注释其中一个。我相信无论是获取,发布还是其他任何内容都能奏效。您也可以使用@Context
注释一个字段,Jersey会在调用您的@GET方法之前为您初始化它。