Cómo llamar a servicios de red usando WSDL
Veamos cómo Java llama a estos servicios web a través de archivos WSDL:?
Tenga en cuenta que el siguiente código no se ha probado realmente. Es solo para ilustrar estas situaciones. Las diferentes versiones de Axis son muy diferentes. Será mejor que consulte el ejemplo en el sitio de Apache. para ilustrarlo.
1. ¿AXIS llama directamente a servicios web remotos?
Creo que este método es más adecuado para aquellos expertos. Pueden entender directamente el archivo WSDL en formato XML. Yo no puedo entenderlo, especialmente porque no me especializo en esta línea de trabajo. Incluso después de leer un párrafo se olvida el tiempo.
El modo de llamada directa es el siguiente:?
import?java.util.Date;
import?java.text.DateFormat;
import?org. apache.axis .client.Call;
importar?org.apache.axis.client.Service;
importar?javax.xml.namespace.QName;
importar? java.lang.Integer;
importar?ParameterMode;
público?caClient?{
público?static?void?main(String[] ?args) ?{ intentar?*;
importar?java.util.Vector;
public?class?caService{
public?static?String? getService(String ?user)?{
URL?url?=?null;
¿intentar?{
url=new?URL("http:/ /192.168.0.100: 8080/ca3/services/caSynrochnized");
}?catch?(MalformedURLException?mue)?{ return?mue.getMessage(); } //Esto?es?main ?SOAP?objeto
Llamar?soapCall?=?new?Call();
//?Use?SOAP?encoding?
soapCall.setEncodingStyleURI( Constants.NS_URI_SOAP_ENC );
//? Este es el objeto remoto por el que estamos pidiendo el precio
soapCall.setTargetObjectURI("urn:xmethods-caSynrochnized");
///? Este es el nombre del método en el objeto anterior
SoapCall.setMethodName("getUser");
/? Necesitamos enviar el número ISBN como parámetro de entrada al método
Vector? SoapParams?= newVector();
// nombre, tipo, valor, estilo de codificación
Parámetro isbnParam?setParams(soapParams);
try?{//Llamar al método remoto en el objeto Response?soapResponse?=?soapCall.invoke(url, ""); // ¿Comprueba si hay un error y devuelve "N/A"? if (soapResponse.generatedFault())? { ¿Fault?fault?=?soapResponse.getFault(); String?f?=?fault.getFaultString(); return?f; obtenerRetorno
Valor(); //?obtener?{ retorno?