この質問の延長があります。Jetty Serverで実行されている正確なコードがあり、他のSOAP Web サービスは完全に動作します。ただし、この行では:
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」を返すので、それが機能していると思います。
これを修正するにはどうすればよいですか?
編集:この修正を試みましたが、役に立ちませんでした。
代わりに @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,
...
...
値のリストには、MessageContext.SERVLET_REQUEST の値である javax.xml.ws.servlet.request が含まれていません。MessageContext にこの値があることを確認するにはどうすればよいですか?