6. Integración de CXF y Spring (Integración de WebService)
web.xml
Descripción: esto configura principalmente la dirección del archivo de configuración de Spring, el detector de Spring y el controlador central CXF.
applicationContext.xml
Descripción:
Utilice el elemento jaxws:endpoint en el archivo de configuración de Spring para exponer WebService. Hay dos formas:
.Luego podemos implementar el proyecto en Tomcat y usar la dirección
http://localhost:8080/cxf_spring/myService para acceder a nuestro proyecto de servicio web en el navegador.
MyClient.java
Nota: myService especifica el nombre de nuestro servicio (configurado en web.xml) y fkjava especifica la dirección del proveedor de servicios (configurado en applicationContext.xml). Al mismo tiempo, este tipo de integración no es buena porque la dirección se escribe de forma rígida y no se utiliza el método de inyección de resorte.
Veamos la clase de servicio HelloWorldWs.java:
Puede ver que la clase de procesamiento empresarial real se crea una instancia manualmente, sin inyección de resorte.
Cambie la forma de exponer WebService en el archivo de configuración de Spring:
Nota: El signo # se agrega para que el servidor sepa que este nombre no es una clase, sino solo una identificación. .
Luego transforma la clase de servicio HelloWorldWs.java:
Luego usamos la dirección anterior para acceder nuevamente y encontramos que el efecto sigue siendo el mismo.
Agregar según la configuración anterior, en applicationContext.xml:
En este momento, como antes, necesitamos agregar un interceptor en el cliente (proyecto Call_CXFSpring), agregar el nombre de usuario y encabezado de contraseña, y luego acceda al servidor. Utilice esto para verificar. En el cliente ejecutamos la clase:
MyClient.java
Accede al servidor.
En los proyectos SSH tradicionales, generalmente hay datos relevantes a nivel local. Sin embargo, existe un escenario en el que necesitamos llamar a los datos de otras personas, pero los datos de otras personas no nos permiten realizar modificaciones y otras operaciones, por lo que otros. Solo se expondrá un WebService y debemos llamar al servidor WebService de otra persona. Cuando visitamos a otros, sólo podemos obtener el documento WSDL. En este momento, nuestro proyecto no necesita componentes de lógica empresarial. Podemos llamar directamente a un proxy del servicio web de otra persona.
Primero copiamos el proyecto anterior y le cambiamos el nombre a cxf_springClient, y luego necesitamos agregar los paquetes jar relevantes de struts2:
Eliminamos algunos de los paquetes originales y dejamos el paquete de permisos. org.fkjava.cxf.ws.auth. Luego iniciamos el proyecto Auth_Server para proporcionar servicios remotos.
Generar paquetes y programas correspondientes en el proyecto web.
web.xml
Nota: Ya no necesitamos el servlet CXF aquí, porque no hay necesidad de clases comerciales, podemos llamar directamente a la empresa remota. Configure también el controlador central de struts2.
applicationContext.xml
Nota: Tampoco necesitamos la clase empresarial aquí, pero necesitamos configurar la clase de proxy empresarial remoto (serviceClass). También tenga en cuenta: no configure el puerto en 8080, ya que entrará en conflicto. Puede ver que usamos serviceClass para configurar la interfaz, y la identificación aquí no se puede escribir casualmente, debe ser coherente con el nombre de la interfaz definida en la acción. Dado que el servidor remoto tiene configurada la interceptación de permisos, aquí se utiliza un filtro para establecer el nombre de usuario y la contraseña en el encabezado del documento wsdl. Luego, en esta clase necesitamos usar el método de ejecución para obtener los datos correspondientes.
struts.xml
ListCatsAction .java
Nota: En este punto podemos usar la dirección http://localhost:8080/cxf_springClient/listCats para acceder Por supuesto, se informará un error de que no se puede encontrar jsp.
content/listCats.jsp
Nota: Puedes verlo cuando lo visites