Red de conocimiento del abogados - Respuesta jurídica de la empresa - Utilice Java para escribir un software basado en servicios web.

Utilice Java para escribir un software basado en servicios web.

1. Primero, hablemos de dos kits de herramientas para desarrollar servicios web: axis y XFire. Lo primero con lo que entré en contacto fue con axis.

La comparación entre los dos es la siguiente:

En comparación con Axis, XFire es actualmente relativamente popular. Además, brinda soporte para la integración con Spring y tiene una fuerte presencia en. La comunidad actual de código abierto de servicios web tiene muchos seguidores. Y debido a que XFire brinda soporte para Spring, podemos usar XFire fácilmente para crear aplicaciones de servicios web en Spring.

No te resultará difícil estudiar estos dos marcos.

Ahora hablaré sobre las instrucciones de desarrollo basadas en xfire:

xfire es muy conveniente para el desarrollo de servicios web, y es aún más conveniente desarrollar en Eclipse. En resumen, hay varios puntos:

1. Las clases de escritura no son diferentes del JAVABEAN ordinario.

2. Archivo de configuración

Si aún necesitas trabajar duro para comprender los servicios web en profundidad, aquí tienes un ejemplo en línea que encontré para ti como referencia:

Utilice XFire+Spring para crear servicios web

XFire es un marco de servicios web de nueva generación paralelo a Axis 2. Admite varios protocolos estándar de servicios web al proporcionar API simples para ayudarlo a desarrollar servicios web de manera conveniente y rápida . solicitud.

En comparación con Axis, XFire es actualmente relativamente popular. Además, brinda soporte para la integración con Spring y tiene muchos seguidores en la comunidad actual de código abierto de servicios web. Y debido a que XFire brinda soporte para Spring, podemos usar XFire fácilmente para crear aplicaciones de servicios web en Spring.

XFire tiene las siguientes características en comparación con Axis2:

l Admite una serie de nuevos estándares de servicios web: JSR181, WSDL2.0, JAXB2, WS-Security, etc.

; p >

l Utilice Stax para interpretar XML y el rendimiento ha mejorado cualitativamente. XFire utiliza Woodstox como implementación de Stax;

l es fácil de comenzar y puede publicar servicios desde pojo de manera conveniente y rápida

l admite Spring, Pico, Plexus, Loom y otros contenedores;

l Mecanismo de enlace flexible, que incluye Aegis, xmlbeans, jaxb2, castor predeterminados

l Diseño de pila SOAP de alto rendimiento

l Admite Spring, Pico, Plexus, Loom y otros contenedores.

La comparación de rendimiento entre XFire y Axis1 es la siguiente:

l XFire es de 2 a 6 veces más rápido que Axis1.3

l El tiempo de respuesta de; XFire es Axis1.3 1/2 a 1/5.

XFire comenzó tarde en el marco de WebService. Tomó prestados muchos conceptos excelentes de los marcos existentes y se esforzó por minimizar la dificultad del desarrollo de aplicaciones de servicios web. Además, también proporciona varias tecnologías de enlace, admite múltiples protocolos de transmisión y brinda soporte para muchas especificaciones nuevas en el sistema WebService.

Veamos un ejemplo sencillo de helloWorld integrado con XFire en Spring.

1. Funciones y características implementadas

Este ejemplo tiene las siguientes funciones y características:

1) Servicio web basado en plataforma J2EE

2) Fácil de desarrollar y configurar; Simple;

3) Perfectamente integrado con el resorte.

XFire es un sistema que funciona completamente basado en el procesamiento de datos de flujo, lo que significa que XFire no almacena en caché todo el documento SOAP en la memoria, sino que recibe datos de flujo SOAP en una canalización. Este cambio en la forma en que trabajamos aporta importantes beneficios de rendimiento y al mismo tiempo ahorra uso de memoria.

XFire pasará por una serie de etapas desde la recepción de una solicitud SOAP en proceso hasta la devolución de una respuesta SOAP. En cualquier etapa de la llamada del pipeline, XFire puede agregar algunos controladores adicionales para procesar los mensajes antes de pasarlos a la siguiente etapa. Antes de que el mensaje de solicitud SOAP inicie una llamada real al Servicio Web, pasará por etapas como transmisión, reenvío previo, reenvío, implementación de políticas, procesamiento de información del usuario, llamada previa y llamada de servicio.

2. Entorno de desarrollo

El entorno de desarrollo del autor se describe a continuación:

1) jdk: versión 1.5

2) Tomcat: 5.5.20; >

3) MyEclipse:5.1.1 GA.

3. Pasos de desarrollo

1. Establecimiento del proyecto y el entorno

Cree un nuevo proyecto web en MyEclipse llamado webservice_helloworld. Después de seleccionar el proyecto, haga clic derecho y seleccione MyEclipse->Agregar capacidades de servicio web. Aparecerá el cuadro de diálogo Agregar capacidades de servicio web. Haga clic en "Siguiente" para que aparezca el cuadro de diálogo Configuración de biblioteca principal. Haga clic en el botón "Finalizar" para completar la adición del paquete principal de XFire. Para pruebas posteriores del cliente, los lectores deben agregar commons-mons-beanutils-1.7.0.jar, commons-codec-1.3.jar, commons-mons-logging-1.0.4.jar y jaxen-1.1-beta-9. .jar, jaxws-api-2.0.jar, jdom- 1.0.jar, jsr173_api-1.0.jar, mail-1.4.jar, saaj-api-1.3.jar, saaj-impl- 1.3.jar, spring-1.2.6 .jar, stax-api-1.0.1.jar, wsdl4j-1.5.2.jar, wstx-asl-3.0.1.jar, xbean-2.1.0.jar, xbean-spring-2.5.jar, xfire-aegis -1.2.2.jar, xfire-annotations-1.2.2.jar, xfire-core-1.2.2.jar, xfire-java5-1.2.2.jar, xfire-jaxws-1.2.2.jar, xfire-jsr181 -api-1.0-M1.jar, xfire-spring- 1.2.2.jar, XmlSchema-1.1.jar

Para el desarrollo y las pruebas posteriores, cree directorios de prueba y de servicios web en el directorio src respectivamente. almacenar archivos de prueba y clases relacionadas con servicios web.

2. Escritura de implementación de servicios web

En este ejemplo, solo estamos haciendo un ejemplo simple de helloWorld. El servidor del servicio web proporciona un método para responder la información de helloWorld correspondiente en función de la información del nombre ingresado. Por ejemplo, cuando el nombre es "Amigo", la información de recuperación es "hola, Amigo". Comencemos a codificar paso a paso.

1) Configuración de web.xml

Generalmente utilizamos HTTP como protocolo de transmisión del Servicio Web, por lo que solo necesitamos iniciar un servidor Web (como Tomcat, en este caso). caso se utiliza Tomcat5.5.20), para que el cliente pueda acceder al Servicio Web a través de HTTP. Para integrar el contenedor Spring, XFire proporciona específicamente un XFireSpringServlet. Podemos configurar el servlet en web.xml para publicar el servicio web definido en el contenedor Spring bajo un determinado URI.

Para utilizar XFire correctamente, debe realizar las configuraciones correspondientes en web.xml y configurar el servlet y el mapeo de servlets de XFire en este archivo. Al mismo tiempo, debido a que este ejemplo necesita integrar XFire en Spring, el archivo de configuración correspondiente de Spring debe cargarse en el archivo web.xml. En este ejemplo, primero creamos dos archivos de configuración de Spring en WEB-INF, uno es applicationContext.xml, que se usa para definir los beans de este proyecto, y el otro es xfire-servlet.xml, que se usa para configurar XFire. frijoles relacionados.

El contenido del web.xml modificado es el siguiente:

XFireService

contextConfigLocation

/WEB-INF/applicationContext.xml,/WEB-INF/xfire-servlet.xml

org.springframework.web.context.ContextLoaderListener

org.springframework.web.util.IntrospectorCleanupListener

xfire

org.springframework.web.servlet.DispatcherServlet

xfire

< url -pattern>*.ws

xfireServlet

org.codehaus.xfire.spring.XFireSpringServlet

clase-servlet> <

/p>

xfireServlet

/service/*

p>

2) Clase de interfaz de servicio web HelloWorld.java y clase de implementación correspondiente HelloWorldImpl. java

Para utilizar el servicio web para completar la función HelloWorld, primero creamos la clase de interfaz HelloWold.java en el directorio src/webservice. Solo contiene un método sayHelloWorld(String name), cuyos detalles son los siguientes:

paquete webservice

/** *//**

* Clase de interfaz de HelloWorld

*/

publicinterface HelloWorld {

/** *//**

*El nombre. es Saludar a la persona nombrada

*@paramname nombre

*@return devuelve la cadena para saludar

*/

String sayHelloWorld( String name);

}

También necesitamos crear una clase de implementación correspondiente para implementar la función de sayHelloWorld. La clase de implementación es HelloWorldImpl.java.

Los detalles de esta clase son los siguientes:

paquete webservice

/** *//**

*Clase de implementación HelloWorld

.

*/

publicclass HelloWorldImpl implementa HelloWorld {

public String sayHelloWorld(String name) {

String helloWorld = "hola", + nombre; /p>

p>

return helloWorld

}

}

3) Configuración de los archivos de configuración de Spring applicationContext.xml y xfire- servlet.xml

Primero configuramos el bean correspondiente: HelloWorldBean en el archivo applicationContext.xml. El contenido del archivo xml es el siguiente:

"">AmigoXie

*@ versión1.0

*Fecha de creación:2007-9-16-05:36:05

*/

publicclass WebServiceClientTest {

HelloWorld holaWorld = null

publicstaticvoid main(String[] args) lanza una excepción {

WebServiceClientTest test = new WebServiceClientTest();

test.testClient( );

}

publicvoid testClient() lanza una excepción {

String wsdl = "HelloWorldService.wsdl"; Archivo WSDL

Recurso de recurso = new ClassPathResource(wsdl);

Cliente cliente = new Client(resource.getInputStream(), null //Crear una instancia de cliente basada en WSDL<); /p>

Objeto[ ] objArray = new Objeto[1];

objArray[0] = "Amigo"

//Llamar al método de servicio web específico

Objeto [] resultados = client.invoke("sayHelloWorld", objArray

System.out.println("resultado: " + resultados[0]); >}

}

Ejecute esta clase y obtendrá el siguiente resultado:

resultado: hola, amigo

Puede ser He visto que el resultado de la ejecución es correcto.

2) Cree un programa de llamadas de clientes basado en la dirección de servicio.

Luego veamos un ejemplo de creación de un programa de llamadas de clientes basado en la dirección de servicio.

Podemos probar la exactitud del servicio web a través de clases de prueba. Veamos una clase de prueba simple. Primero, creamos el archivo WebServiceClientTest.java en el directorio src/test y creamos el archivo de configuración Spring llamado por el cliente en el directorio src. cliente.xml. En el archivo de configuración client.xml, definimos un bean testWebService, que accede al WSDL de wsdlDocumentUrl en http://localhost:8080/webservice_helloworld/HelloWorldService.ws?wsdl.

Los detalles del archivo xml son los siguientes:

"http://www.springframework.org/dtd/spring-beans.dtd">

servicio web .HelloWorld

http://localhost: 8080/ webservice_helloworld/HelloWorldService.ws?wsdl

Obtenga HelloWorld en el archivo WebServiceClientTest.java y llame a su método sayHelloWorld para completar la prueba. Los detalles de la clase son los siguientes:

paquete prueba

import org. springframework .context.ApplicationContext;

importar org.springframework.context.support.ClassPathXmlApplicationContext;

importar webservice.HelloWorld

/** *//* *

*Clase de prueba de servicio web de HelloWorld

*/

publicclass WebServiceClientTest {

HelloWorld helloWorld = null

publicstaticvoid main(String[] args) {

WebServiceClientTest test = new WebServiceClientTest();

test.testClient()

}

}

p>

publicvoid testClient() {

ApplicationContext ctx = new ClassPathXmlApplicationContext(

"client.xml");

holaMundo = (HolaMundo) ctx .getBean("testWebService");

System.out.println(holaMundo.sayHelloWorld("Amigo")); p>

}

Cuando se inicia el proyecto webservice_helloworld, ejecuta la clase WebServiceClientTest y podrás ver que la consola contiene la siguiente información:

hola, Amiguo

Así Se puede observar que la llamada al Servicio Web es exitosa.

Cuatro. Resumen

En comparación con Axis, XFire es más conciso y eficiente al implementar servicios web, y XFire proporciona un fuerte soporte para Spring. Es muy conveniente utilizar XFire para implementar servicios web en Spring. Con el tiempo, se ha convertido en el marco favorito entre los desarrolladores de servicios web.

XFire proporciona múltiples formas para que los clientes accedan a los servicios web. Si puede obtener la clase de interfaz estrecha del cliente, puede usar la clase de interfaz estrecha para llamar al servicio web. Si solo se puede obtener WSDL, XFire también puede utilizar un mecanismo de reflexión dinámica para llamar al servicio web. XFire proporciona a Eclipse un complemento que puede generar código auxiliar de cliente basado en WSDL. Creo que XFire también proporcionará complementos similares para otros lenguajes que no sean Java.

Stax también se ha utilizado para procesar XML en Axis2. Xfire no admite WSDL2.0, pero Axis2 admite WSDL2.0.

También puedes utilizar la versión posterior de Xfire, Apache CXF (equivalente a Xfire2.0).