javax.xml.ws.Endpoint.publish(String address)抛出NPE(Java 8u162)

时间:2018-02-16 18:01:06

标签: java java-8

将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]

2 个答案:

答案 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。