将java从8u151升级到8u162之后,它开始在javax.xml.ws.Endpoint.publish(String address)
中抛出NPE。使用8u151一切都很好,现在它只在提供的服务器上下文中发布一个(第一个)端点,在第二个获取NPE上(参见下面的日志)。我想ServerMgr实现有问题(无法找到要确保的源)。任何帮助将不胜感激。
com.sun.xml.internal.ws.server.ServerRtException: Server Runtime Error:
java.lang.NullPointerException at
com.sun.xml.internal.ws.transport.http.server.ServerMgr.createContext(ServerMgr.java:130) ~ [?:1.8.0_162] at
com.sun.xml.internal.ws.transport.http.server.HttpEndpoint.publish (HttpEndpoint.java:64) ~
[?:1.8.0_162] at
com.sun.xml.internal.ws.transport.http.server.EndpointImpl.publish
(EndpointImpl.java:232) ~ [?:1.8.0_162]
答案 0 :(得分:1)
经过调查发现http Jetty共享服务器导致问题。这似乎与最新的java 8版本(8u152,8u161,8u162)不兼容。
答案 1 :(得分:0)
@MattiasIsegranBergander对我来说,解决方法是在提供的服务器上下文中发布终结点。例如:
Endpoint endpoint = Endpoint.create(SOAPBinding.SOAP11HTTP_BINDING, webService);
try {
JettyHttpServerProvider.setServer(server);
HttpContext context = new JettyHttpServerProvider().createHttpServer(new InetSocketAddress(port), 5)
.createContext("/" + serviceName);
endpoint.publish(context);
} catch (IOException e) {
throw new UncheckedIOException(e);
}
还希望在9.4.x版本(https://github.com/eclipse/jetty.project/issues/2718)的jetty库中添加此问题的修复程序。好的@MattiasIsegranBergander。