微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Web服务 – JAVA JAX-WS NullPointerException在javax.xml.ws.Service.getPort(Service.java:188)

我在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();
    }

}

}

HelloWorld.java

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

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

原文地址:https://www.jb51.cc/html/229617.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐