En el artículo anterior, le presenté una explicación detallada del tutorial de servicio web (i)
Razones para usar herramientas:
1. Use herramientas para comprender mejor el proceso de solicitudes de servicio web
2. Use la herramienta WSEXplore para obtener el formato de la transmisión y la recepción de datos SOAP.
3. Utilice el monitor TCP/IP de la herramienta para monitorear los datos específicos del encabezado de solicitud del interceptor y el encabezado de respuesta
¿Qué es el jabón?
SOAP es un protocolo de texto basado en la especificación de codificación XML. En pocas palabras, SOAP es transmitir datos XML en HTTP para realizar llamadas remotas [sin importar el idioma en el que esté escrito su servidor, siempre que reciba datos XML del protocolo SOAP y devuelva los datos XML del protocolo SOAB, puede llamarse por cualquier idioma].
Uso de la instancia de wsexplorer: verifique que QQ esté en línea
Al usar la verificación QqCheckOnline en QqonlineWebServicesOAP, el devuelto es
qqcheckonlinerponse
qqcheckonlineresult (cadena): n
Haga clic en la fuente para ver la información detallada, la información es la siguiente:
1: Este es el formato de mensaje:
La copia del código es la siguiente:
http://schemas.xmlsoap.org/soap/envelope/ "xmlns: q0 =" http://webxml.com.cn/ "xmlns: xsd =" http://www.w3.org/2001/xmlschema " xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance">
-
-
870931520
2: el siguiente es el formato XML recibido
La copia del código es la siguiente:
http://schemas.xmlsoap.org/soap/envelope/ "xmlns: xsd =" http://www.w3.org/2001/xmlschema "xmlns: xsi =" http://www.w3.org/2001/xmlschema-instance "
-
- http://webxml.com.cn/ ">
norte
Cuando se usa qqonlinewebservicehttpget o qqonlinewebservicehttpost, los devueltos son todos
Nhttp: //webxml.com.cn/ "> n>
Uso de TCP/IP Monitor
TCP/IP Monitor no solo puede ver los datos de SOAP, sino que también obtener información de encabezado para solicitudes y recepciones HTTP.
1. Ubicación: esta herramienta se encuentra en: Ventana> Mostrar Ver> Otro> Myeclipse Common (Herramientas comunes)> Monitor TCP/IP
2. Esta herramienta es equivalente a un agente. Después del inicio, escuchará un puerto local y luego reenviará la solicitud a la IP y el puerto de destino especificados.
Después de obtener los datos, devuelva los datos al cliente intacto. A los ojos de los clientes, este agente siempre debe ser el primero en acceder, de lo contrario no veremos el proceso de transmisión de datos.
3. Opciones de configuración:
En la interfaz Open TCP/IP Monitor: Ver menú (flecha pequeña en la dirección superior derecha)> Propiedades> Agregar (agregar a la derecha)
Establecer en las siguientes propiedades:
Primer paso:
1) Puerto de monitoreo local (escuche el número de puerto local): 9876, establezca un número de puerto de 4 bits a voluntad, y se accederá en forma de http://127.0.0.1:9876
2) Nombre del host (el servidor a escuchar, como www.vevb.com): 127.0.0.1 Debido a que la máquina publica un servicio web, monitorea la IP nativa. También puede ser cualquier anfitrión.
3) Puerto (puerto del servidor de destino a escuchar): 6666 - Debido a que el servicio web que publicamos es http://127.0.0.1:6666/helloworld, 6666 es el número de puerto que debe escuchar.
4) Tipo (el tipo de escucha):
- TCP/IP: la dirección original se utilizará para continuar accediendo a la siguiente solicitud, como la entrada del usuario: http://127.0.0.1:9876/helloworld?wsdl volverá a la dirección de acceso del servicio WSDL como antes.
- HTTP: la dirección de destino continuará accediendo a la próxima solicitud. Como entrada del usuario: http://127.0.0.1:9876/helloworld?wsdl usará http://127.0.0.1:6666/helloworld para acceder al método Sayhi al solicitar el método. Este método ya no se representará. Porque ya no es el número de puerto que se escucha.
En el tipo de escucha, seleccioné TCP/IP y luego verifiqué el cambio de la dirección en el archivo WSDL devuelto entrando: http://127.0.0.1:9876/helloworld?wsdl en la barra de direcciones.
Tiempo de espera: Establezca el tiempo de conexión cuando el acceso no tiene éxito, y manténgalo en 0, es decir, no está configurado.
Después de configurarlo, haga clic en el botón Aceptar y luego haga clic en el botón Inicio a la derecha, y el monitoreo ha comenzado.
Paso 2:
Configure la URL WSDL en el servicio web de MyEClipse en: http://127.0.0.1:9876/helloworld?wsdl, tenga en cuenta que se utiliza el puerto de MyEClipse TCP/IP Monitor. En lugar de visitar directamente el http://127.0.0.1:6666/helloworld?wsdl publicado
¿Cómo modificar el contenido del archivo WSDL?
Use las anotaciones de WebService.
1. @WebService-Definition Service
2. @WebMethod-Definition Method
3. @Webresult-Definition Return Value
4. @Webparam-Define Parámetros
Nota: Las diferentes versiones admiten diferentes niveles de comentarios:
1. 1.5 no es compatible.
2. Las versiones antes de 1.6.0_20 deben usar anotaciones completas.
3. Después de 1.6.0_21, solo puede usar @WebService para anotar la clase.
La función de los comentarios:
A través de los comentarios de WebService, puede describir el servicio web de manera más vívida. Esto genera un documento WSDL.
Cuando se modifica la anotación del servicio web, el código generado por el cliente también afectará.
El método y los nombres de parámetros del llamado también se cambiaron.
Ejemplo:
@WebService (name = "myname", // correspondiente porttype name = "myname" portname = "myport", // puerto correspondiente name = "myport" serviceName = "myservice", // name de servicio correspondiente = "myService" targetNamespace = "http://Leaf.com/mynamespace") SimpleDateFormat sdf = new SimpleDateFormat ("yyyy-mm-dd hh: mm: ss"); @Webmethod (Action = "MyAction", // Define a SoapAction = "MyAction" para encontrar este método para ejecutar operationName = "myOperationName") // Define el método que se puede llamar, y un método específico de la clase correspondiente se generará, Nombre de la operación = ".." public @WebResult (name = "MySayhelloresult") Cadena // Define el nombre del valor de retorno "Hola Mundo"; } @Webmethod (action = "mySayHiAction", operationName = "mySayHIOperationName") public @WebResult (name = "mySayHiresult") String sayshi (@WebParam (name = "myParaname", // Pon los parámetros en la información del encabezado para proteger los parámetros. Por defecto, encabezado = verdadero, verdadero, modo, modo de modo). "+nombre+", la hora actual es: "+sdf.format (nueva fecha ()); regresar str; } public static void main (string [] args) {endpoint.publish ("http://127.0.0.1:6666/helloworld", new Helloworld ()); }}3: Después de que el programa anterior se lance al público, accedemos a él a través del WebService Explorer de MyEClipse
Encontrará un mensaje de inmediato diferente al antes, pero de hecho, todavía se llama al mismo método.
4: use WSIMPORT S nuevamente. http://127.0.0.1:6666/helloworld?wsdl para generar el código Java y luego llamar al siguiente código de llamada (se puede describir como irreconocible, pero el mismo trabajo se realiza).
paquete com.leaf.mynamespace; public class Main {public static void main (string [] args) {// analizando WSDL, podemos ver que llamar a getMyport de myService devuelve myname myname myname = new myService (). getMyport (); // llame al método sayhi a través de mysayhioperationname de myname string str = myname.mysayhioperationName ("wang jian"); System.err.println (str); }}Explicación detallada del tutorial de servicio web (ii) Permítanme presentarlo aquí primero, ¡espero que sea útil para usted!