【发布时间】:2012-09-20 19:23:00
【问题描述】:
我有一个this question 的分机号。我在 Jetty Server 上运行了准确的代码,而其他 SOAP 网络服务也可以完美运行。但是,在这一行:
HttpServletRequest req = (HttpServletRequest)mc.get(MessageContext.SERVLET_REQUEST);
System.out.println("Client IP = " + req.getRemoteAddr());
服务器因空指针异常而崩溃。 mc.get(MessageContext.SERVLET_REQUEST) 正在返回 null。
相比之下,mc.get(MessageContext.HTTP_REQUEST_METHOD) 返回“POST”,所以我认为这是有效的。
我能做些什么来解决这个问题?
编辑: 我试过this修复无济于事。
我也尝试过使用 @Context 注释,但遇到了同样的问题。
一个 System.out.println(mc) 产生这个:
{javax.xml.ws.wsdl.port={http://my.test.namespace.com/}testWSDLPort,
javax.xml.ws.soap.http.soapaction.uri="",
com.sun.xml.internal.ws.server.OneWayOperation=null,
javax.xml.ws.http.request.pathinfo=null,
...
...
等等,并且值列表不包括 javax.xml.ws.servlet.request,它是 MessageContext.SERVLET_REQUEST 的值。我需要做什么来确保 MessageContext 具有此值?
【问题讨论】: