web-services - JAVA JAX-WS NullPointerException 在 javax.xml.ws.Service.getPort(Service.java :188)

标签 web-services nullpointerexception jax-ws port

我在 ubuntu 下的 jboss 上部署了简单的“HelloWorld”Web 服务。
我创建了简单的客户端,但我无法让它工作。每次运行客户端时,我都会收到 NullPointerException。

请注意,我在 Ubuntu 下运行 Oracle Java 7。

这是代码:
HelloWorldClient.java

import java.net.MalformedURLException;
import java.net.URL;

import javax.xml.namespace.QName;
import javax.xml.ws.Service;


public class HelloWorldClient {

public static void main(String[] args){
    URL url;
    try {
        url = new URL("http://localhost:8080/WebServiceProject/helloWorld?wsdl");
        QName qname = new QName("http:///", "HelloWorldImplService");

        Service service = Service.create(url, qname);

        HelloWorld hello = service.getPort(HelloWorld.class);

         System.out.println(hello.sayHello("mkyong"));
    } catch (MalformedURLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

}

Hello World
import javax.jws.WebMethod;
import javax.jws.WebService;


@WebService
public interface HelloWorld {

    @WebMethod
    public String sayHello(String name);

}

堆栈跟踪:
Exception in thread "main" java.lang.NullPointerException
at com.sun.xml.internal.ws.model.RuntimeModeler.getPortTypeName(RuntimeModeler.java:1407)
at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:334)
at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:354)
at javax.xml.ws.Service.getPort(Service.java:188)
at HelloWorldClient.main(HelloWorldClient.java:18)

在这一行抛出异常:
HelloWorld hello = service.getPort(HelloWorld.class);

最佳答案

几天来我自己也遇到了同样的问题,因为我使用的 WSDL 文件(和服务)已移至新 URL。我终于在这里找到了解决方案:

http://techtracer.com/2007/08/15/jax-ws-jaxp-tutorial-building-a-stockquote-web-service-client/

简而言之,在我使用以下命令(在 Windows/CygWin 上)重新生成所有自动生成的 java 和类文件后,一切(应该已经)开始工作

"C:/Program Files/Java/jdk1.8.0_31/bin/wsimport.exe" -keep  https://domain.com/path_to_wsdl

我遇到了一些额外的麻烦,因为一些旧文件被遗留下来并与新生成的文件发生冲突,但是在我将所有旧文件移动到回收站后,一切都慢慢开始工作。

关于web-services - JAVA JAX-WS NullPointerException 在 javax.xml.ws.Service.getPort(Service.java :188),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16872158/

相关文章:

android - 如何解决 'Null Pointer Exception'

python - 使用 AppEngine XMPP 进行客户端通知

web-services - SOA 原则 - 一个服务应该调用另一个服务吗?

java - 关于可以支持用Java编写的Web服务的轻量级开源Web服务器的建议

java - 从 .txt 填充数组时出现 NullPointerException

java - 什么是 NullPointerException,我该如何解决?

jax-ws - Tomcat 7.0 和 JAX WS Servlet 错误

java - 将 SOAP 消息作为字符串进行操作

java - CXF拦截器如何访问Servlet Session?

java - ReSTLet 使用 post web 服务,添加 json 字符串作为表示