Red de conocimiento informático - Material del sitio web - Cómo utilizar IDEA para desarrollar un programa cliente de WebService paso a paso

Cómo utilizar IDEA para desarrollar un programa cliente de WebService paso a paso

Primero, escribí un programa cliente WebService para llamar al programa del lado del servidor:

import org.apache.axis.client.Service; Llamar; importar javax.xml.namespace.QName; /**

* @param

* @author wu.lin

* @description

* @create 25 de octubre de 2016 19:51

* @throws

*/public class HelloWorldClient {

public static void main (String [] argv) {

Servicio servicio = nuevo Servicio();

String url = ".URL(url));

call.setOperationName (nuevo QName("http://ejemplo","sayHelloWorldFrom"));

call.addParameter(new QName("from"),org.apache.axis.encoding.XMLType.XSD_STRING, javax .xml .rpc.ParameterMode.IN);

call.setUseSOAPAction(true);

call.setReturnType(org.apache.axis.encoding.XMLType.SOAP_STRING);

p>

Resultado de cadena = (Cadena)call.invoke(nuevo objeto[]{"Tom"});

System.out.println(resultado);

} catch (Excepción e) {

e.printStackTrace();

}

}

}123456789101112131415161718192021222324252627282930313233

Ejecute este programa y obtenga los siguientes resultados:

Bueno, no hay ningún problema con el programa. A continuación, usamos IDEA para crear un proyecto de cliente de servicio web (tenga en cuenta que el proyecto de cliente de servicio web). seleccionado aquí):?

Haga clic en Siguiente:?

Finsh, preste atención a completar los siguientes lugares;?

Luego obtenga un proyecto, el IDE genere algunas clases, pero estas clases pueden tener algún error, necesitamos modificarlo manualmente. El código de la clase HelloWorldClient obtenido después de la modificación es el siguiente:

public static void main(String[] argv) {

prueba {

HelloWorldServiceLocator locator = new HelloWorldServiceLocator();

HelloWorld_PortType service = locator.getHelloW

orld();

// Si se requiere autorización

//((HelloWorldSoapBindingStub)service).setUsername("user3");

//( (HelloWorldSoapBindingStub)service).setPassword("pass3");

// invocar método de negocio

String str = service.sayHelloWorldFrom("Tom!");

System.out.println(str);

} catch (javax.xml.rpc.ServiceException ex) {

ex.printStackTrace();

} catch (java.rmi.RemoteException ex) {

ex.printStackTrace();

}

}12345678910111213141516

También Las clases de prueba unitaria también informarán errores porque el paquete jar de Junit no se importa. Existe una solución que puede importar rápidamente el paquete jar. Por ejemplo, agregue una anotación @Test a cualquier método en la clase de prueba. El IDE encontrará que falta el jar y luego agregará Junit al classpath de acuerdo con el mensaje de error. , y todo estará bien. En este punto, el código del cliente de eje está completo. Después de modificar el proyecto, lo ejecutamos nuevamente:?

Se informó un error nuevamente y muchas soluciones fallaron. Finalmente, comparé el código que escribimos con el método de llamada WebService generado por la herramienta y lo modifiqué. método: ?

La siguiente clase es el código en HelloWorldSoapBindingStub: ?

Al comentar la línea 57 de código, obtuve el resultado correcto: ?

En este punto, a través de IDEA se crea un programa cliente de servicio web y lo ajusta. ?

Ahora encuentro que todos encontrarán algunos problemas diferentes. Siempre que depure con paciencia y cuidado, siempre podrá obtener los resultados correctos. ¡Vamos!