Los servicios web pueden convertir aplicaciones en aplicaciones web.
Al utilizar los servicios web, su aplicación puede publicar información al mundo o proporcionar una función.
Otras aplicaciones pueden utilizar los servicios web.
Web Services permite que el servidor WIN 2K de su departamento de contabilidad se conecte al servidor UNIX del proveedor de TI.
La plataforma básica de servicios web es XML+HTTP.
Los servicios web usan XML para codificar datos y usan SAAL para transferir datos.
¿Qué es el servicio web?
WebService, como su nombre indica, es un servicio basado en la web. Utiliza el método web (HTTP) para recibir y responder a algunas solicitudes de sistemas externos. Esto permite llamadas remotas.
1: Desde la perspectiva del modo de trabajo de WebService, no es esencialmente diferente de los programas web ordinarios (como ASP, JSP, etc.). Son programas basados en el protocolo de transmisión HTTP.
2: Los datos utilizados por WebService se basan en el formato XML. Actualmente, el servicio web estándar utiliza principalmente el protocolo SOAB en formato de datos. El protocolo SOAP es en realidad un protocolo de texto basado en las especificaciones de codificación XML.
Soporte técnico para WebService
La plataforma de servicio web requiere un conjunto de protocolos para habilitar la creación de aplicaciones distribuidas. Cualquier plataforma tiene su método de representación de datos y sistema de tipo. Para lograr la interoperabilidad, la plataforma de servicio web debe proporcionar un sistema de tipo estándar para comunicar diferentes tipos de sistemas en diferentes plataformas, lenguajes de programación y modelos de componentes. Actualmente estos acuerdos incluyen:
XML y XSD
El lenguaje de marcado extensible XML es el formato básico para representar datos en la plataforma de servicio web. Además de ser fácil de construir y analizar, la principal ventaja de XML es que no tiene nada que ver con la plataforma y el proveedor. XML es creado por la World Wide Web Association (W3C). XML SchemaXSD desarrollado por W3C define un conjunto estándar de tipos de datos y ofrece un lenguaje para extender este conjunto de tipos de datos.
La plataforma de servicio web utiliza XSD como sistema de tipo de datos. Cuando construye un servicio web en un idioma como VB. NET o C#, para cumplir con los estándares de servicio web, todos los tipos de datos que use deben convertirse en Tipo XSD. Si desea que se pase entre diferentes plataformas y un software diferente, también debe envolverlo con algo. Este tipo de cosas es un protocolo, como el jabón.
JABÓN
SOAP es la protocal de acceso de objeto simple, que es un protocolo liviano para intercambiar información de codificación XML. Tiene tres aspectos principales: XML-Ensvelope define un marco para describir el contenido de información y cómo procesar el contenido, codifica objetos del programa en objetos XML y ejecuta la convención de llamadas de procedimientos remotos (RPC). El jabón puede funcionar en cualquier otro protocolo de transporte. Por ejemplo, puede usar SMTP, el protocolo de correo electrónico de Internet, para entregar mensajes SOAP, lo cual es muy tentador. Los encabezados son diferentes entre las capas de transporte, pero la carga útil XML sigue siendo la misma.
El servicio web espera lograr la capacidad de diferentes sistemas para llamarse entre sí de una manera de "diálogo de software-software", romper el estado incompatible entre aplicaciones de software, sitios web y diversos dispositivos, y alcanzar el objetivo de "integración temporada basada en la web".
WSDL
Descripción del servicio web El lenguaje WSDL es un documento de descripción formal proporcionado de manera legible a máquina y se basa en XML. Se utiliza para describir el servicio web y sus funciones, parámetros y valores de retorno. Debido a que se basa en XML, WSDL es a la vez legible por máquina y legible.
Uddi
El propósito de UDDI es establecer estándares para el comercio electrónico; UDDI es un conjunto de estándares y especificaciones de implementación del centro de registro de información basado en la web, proporcionados para los servicios web, y también incluye un conjunto de estándares de implementación que permiten a las empresas registrar sus propios servicios web para que otras empresas puedan descubrir protocolos de acceso. Llamar a RPC y mensajes
El servicio web en sí está implementando comunicación entre aplicaciones. Ahora tenemos dos formas de comunicación para aplicaciones: llamadas de procedimiento remoto de RPC y entrega de mensajes. Al usar RPC, el concepto de un cliente es llamar a un procedimiento remoto en el servidor. La forma habitual es instanciar un objeto remoto y llamar a sus métodos y propiedades. El sistema RPC intenta lograr un tipo de transparencia de ubicación: el servidor expone las interfaces de los objetos remotos, y el cliente es como las interfaces de estos objetos utilizados localmente, ocultando así la información subyacente, y el cliente no necesita saber en qué máquina está el objeto.
¿Cómo publicar un servicio web?
1. Use JDK1.6.0_21 más tarde para publicar un servicio de servicio web. Y ver su documento WSDL a través de la barra de direcciones.
2. Genere el código del cliente a través de WSIMPORT, llame y vea los resultados de la ejecución. (Aprender a llamar es nuestro enfoque).
Cabe señalar que cuando JDK1.6._07 se lanza después de la versión JDK, el código debe anotarse por completo. Si está utilizando JDK1.6.0_21, porque ya contiene WS2.1, solo puede agregar anotaciones de @WebService a la clase.
Aquí hay dos códigos diferentes:
WS lanzado en la versión JDK1.6.0_13:
paquete com.itcast; import javax.jwss.webmethod; import javax.jws.webservice; import javax.jwss.soap.soapbinding; import javax.jwss.soap.soapbinding.style; import javax.xml.ws.endpoint; @WebService (TargetNamesPace = "http: // loalhost: 9999/helloworld") @soapbinding (style = style.rpc) // Solo soporta el estilo de mensajes RPC Helloworld {// El siguiente se anotó por @Webmethod, el método @Webmethod public Sling Sayshello () {Return de regreso ". } public static void main (string [] args) {endpoint.publish ("http: // localhost: 9999/helloworld", new Helloworld ()); }} 2: El siguiente es el código WebService publicado en JDK1.6.0_24:
paquete com.itcast; import javax.jws.webservice; import javax.xml.ws.endpoint; @WebService // Tenga en cuenta que solo existe esta anotación, esta anotación también es necesaria. El estilo de mensaje de jabón predeterminado es: documento public class Helloworld {public String Sayshello () {return "HelloWorld"; } public static void main (string [] args) {endpoint.publish ("http: // localhost: 9999/helloworld", new Helloworld ()); }} El primer servicio de servicio web
paquete com.itcast; import javax.jws.webservice; import javax.xml.ws.endpoint; / *** La primera aplicación del servicio de WebService*/ // por anotación, indica que esta clase se publica como WebService @WebService public class HelloWorld {public String Sayshello () {return "Hello World"; } // En el método principal, use javax.xml.ws.endpoint endpoint para publicar una aplicación public static void main (string [] args) {endpoint.publish ("http://127.0.0.1:99999/helloworld", New Helloworld ()); }}Descripción del código: Todos los métodos expuestos no estáticos de la clase Helloworld estarán expuestos al exterior.
Descripción de la herramienta WSIMPORT:
WSimport es una herramienta que viene con JDK y puede generar código de llamada del lado del cliente basado en el documento WSDL. Por supuesto, no importa qué idioma esté escrito en el servicio web del lado del servidor, el código Java se generará en el cliente. No importa lo que esté escrito en el lado del servidor.
WSIMPORT.EXE se encuentra en el directorio Java_Home/Bin.
Los parámetros comunes son:
• -D <Directory> - Se generará un archivo .class. Parámetros predeterminados.
• -S <Directory> - Se generará el archivo .java.
• -P <nuevo nombre del paquete generado> -Put la clase generada en el paquete especificado.
(wsdlurl) - http: // servidor: puerto/servicio? wsdl, parámetros requeridos
usar:
1: Puede verificar su número de versión actual a través de la versión Java. Si la versión es demasiado baja, puede instalar una versión más alta de JDK.
O copie directamente el directorio JDK instalado en su máquina, como D: /jdk1.6.0_24 Directory.
Debido a que las variables de entorno anterior se han establecido en la versión anterior anterior del directorio JDK, a saber, las dos variables de entorno Java_Home y Path.
Puede restablecer la variable de entorno a: java_home = d: /jdk1.6.0_24, ruta =%java_home%/bin,
Después de restablecer las variables de entorno, debe reabrir una ventana DOC (línea de comandos) para entrar en vigencia.
Si no desea modificar las variables de entorno ya configuradas, puede ingresar el siguiente comando en la ventana de línea de comando para hacer que JDK1.6.0_24 surta efecto:
Establecer ruta = d: /jdk1.6.0_24/bin;% ruta% (solo ingrese)
Luego verifique si el número de versión de JDK ha cambiado a través de la versión Java.
2: Vaya a un directorio relativamente limpio, creé un nuevo nombre de directorio en el disco D llamado: WS y vaya a este directorio.
3: Encienda su servicio web.
4: Ingrese el siguiente comando:
wsimport s. http://127.0.0.1:9999/helloworld?wsdl
Descripción del parámetro: -S se refiere a la compilación del archivo del código fuente, y el siguiente (punto) se refiere a ponerlo en el lugar anterior.
El último HTTP ... se refiere a la dirección de obtener el manual de instrucciones de WSDL.
5: En este momento, se generará el archivo .java y el archivo .class. (Ambos que contienen el nombre del paquete original). Copie el código en su proyecto. (solo copie el archivo Java)
6: En un nuevo proyecto, una nueva clase (se puede ubicar en cualquier paquete), llame al código generado anteriormente, consulte PPT en la página siguiente.
7: wsimport Otros parámetros, los parámetros que usamos a menudo son -d, -s, -p
-d <Directory> generará archivos .class.
Ejemplo: WSIMPORT d. http://127.0.0.1:9999/helloworld?wsdl
-S <Directory> Generará el archivo .java.
Ejemplo: WSIMPORT S. http://127.0.0.1:9999/helloworld?wsdl
-p <nombre del paquete> modificar el archivo generado (.java o .class al nombre del paquete especificado)
Ejemplo: WSIMPORT -S. -p com.beijing.itcast http://127.0.0.1:9999/helloworld?wsdl
Para el parámetro -p, preste atención a la modificación del nombre del paquete. Coloca todas las clases generadas en el paquete especificado por -p. (Manifestación)
Cabe señalar que cuando solo se usa el parámetro -p, también usará -d al mismo tiempo para compilar en un archivo .class. Si el parámetro D está escrito o no, está allí, y nunca se irá.
El código fuente de runmain.java es el siguiente:
paquete com.leaf; import com.itcast.helloworld; import com.itcast.helloworldservice; /*** Llame al código remoto llamando a la clase generada*/public class runmain {public static void main (string [] args) {// Devuelve la interfaz de llamada del método Gethelloworldport de Helloworldserice Helloworld = New HeldoworldService (). Gethelloworldport (); Cadena str = helloworld.sayhello (); // Ejecutar el sistema de llamadas.err.println (str); // return Helloworld String}}La diferencia entre el servicio web y los programas web comunes
1. WebService solo usa la publicación HTTP para transmitir datos, y no usa GET;
1) El ContentType de TTTP Post es
(1) aplicación/x-www-form-urlencoded
2) El ContentType de WebService es
(2) Texto/XML SOAP1.1
(3) Aplicación/SOAB+XML SOAP1.2
2. WebService está limitado del formato de transmisión de datos.
Los datos utilizados por WebService se basan en el formato XML. Actualmente, el servicio web estándar utiliza principalmente el protocolo SOAB en formato de datos. El protocolo SOAP es en realidad un protocolo de texto basado en las especificaciones de codificación XML.
La diferencia entre el servicio web y el servidor web:
Podemos pensar en WebService como una aplicación en un servidor web; Por otro lado, el servidor web es un contenedor necesario para el tiempo de ejecución de WebService. Esta es su diferencia y conexión.
Características del servicio web:
1. WebService acepta las solicitudes de los clientes a través de HTTP Post
2. El protocolo SOAP generalmente se usa entre WebService y el cliente para transmitir datos XML.
3. Está diseñado para plataforma cruzada o lenguaje cruzado.