Tôi có dịch vụ web "HelloWorld" đơn giản được triển khai trên jboss trong ubuntu. Tôi đã tạo khách hàng đơn giản, nhưng tôi không thể làm cho nó hoạt động. Tôi nhận được NullPointerException mỗi khi tôi chạy máy khách.JAVA JAX-WS NullPointerException tại javax.xml.ws.Service.getPort (Service.java:188)
Lưu ý rằng tôi đang chạy trên Oracle Java 7 trong Ubuntu.
Đây là mã: 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);
}
stacktrace:
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)
Các excepti trên được ném vào dòng này:
HelloWorld hello = service.getPort(HelloWorld.class);
Chỉ cần nhận xét nhanh và có thể hoàn toàn không liên quan đến vấn đề của bạn nhưng 'QName' của bạn có thêm'/'. Nó là một lỗi đánh máy? –
@SamRad có thể có liên quan. Sẽ giải thích tại sao 'dịch vụ' có thể là rỗng – kolossus
Không có thêm"/". Bạn viết url như "http: // something /". Trong trường hợp này, không có "cái gì". Dịch vụ cũng không phải là rỗng. Nhìn vào stacktrace – Bladositto