world services jax how hello example create cliente web-services nullpointerexception jax-ws port

web-services - services - jax ws java 7



JAVA JAX-WS NullPointerException en javax.xml.ws.Service.getPort(Service.java:188) (1)

He tenido el mismo problema por unos días, porque el archivo WSDL (y el servicio) que estaba usando se movió a una nueva URL. Finalmente encontré la solución aquí:

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

En resumen, todo (debería tener) comenzó a funcionar después de que volví a generar todos los archivos java y de clase generados automáticamente con el siguiente comando (en Windows / CygWin)

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

Tuve algunos problemas adicionales porque algunos archivos viejos quedaron y chocaron con los recién generados, pero todo comenzó a funcionar lentamente después de que moví todos los archivos viejos a la papelera de reciclaje.

Tengo el sencillo servicio web "HelloWorld" desplegado en jboss bajo ubuntu. Creé un cliente simple, pero no puedo hacer que funcione. Obtengo NullPointerException cada vez que ejecuto el cliente.

Tenga en cuenta que me estoy ejecutando en Oracle Java 7 en Ubuntu.

Aquí está el código: 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)

La excepción se lanza en esta línea:

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