Información sobre servicios web SOAP Java
MapForce genera el código y los scripts necesarios para crear un servicio web SOAP. Sin embargo, para que el servicio web esté disponible para los consumidores, el código generado se debe compilar (build) e implementar en el servidor Apache Tomcat con Axis2 instalado. Para compilar código Java también es necesario Apache Ant.
Generar y compilar código Java
1.Abra el proyecto de servicio web a partir del cual quiere generar el código. Consulte el apartado anterior, Crear proyectos de servicio web a partir de archivos WSDL, para ver un ejemplo de cómo crear este tipo de proyectos.
2.En el menú Proyecto, haga clic en Generar código en | Java y seleccione el directorio de destino. Cuando haya terminado de generarse el código, verá que se han creado distintos archivos y carpetas en el directorio de destino, incluido un directorio com que contiene clases genéricas de Altova, además de las clases propias del proyecto de servicio web.
3.Compile (build) el código Java generado (proporcionando a Apache Ant el archivo build.xml generado por MapForce). El resultado es que se crea un archivo Axis Archive (*.aar) que luego puede implementar en Axis2.
Nota para usuarios de Eclipse: al abrir el proyecto generado con Eclipse puede que vea un error como "No se puede resolver org.apache". En este caso, asegúrese de que añade las bibliotecas Axis2 a la ruta de construcción de Java. Para hacer esto en Eclipse 4.4.2, siga estos pasos:
1.En Package Explorer, haga clic con el botón derecho en el proyecto y seleccione Propiedades.
2.Haga clic en Java Build Path.
3.En la pestaña Bibiliotecas, haga clic en Add External JARs y añada las bibliotecas Axis2 desde la carpeta <AXIS2_HOME>\lib.
Implementar el servicio web
Para implementar el servicio web, escoja una de estas opciones:
•Abra la página de administración web de Axis2 y cargue el archivo .aar que creó antes.
•Realice una carga manual. Por ejemplo, si su servidor Tomcat se instaló en la carpeta <TOMCAT_HOME>, puede copiar manualmente el archivo .aar a <TOMCAT_HOME>\webapps\axis2\WEB-INF\services.
Para ver un ejemplo paso por paso, consulte Ejemplo: generar servicios web SOAP (Java)
Retirar el servicio web
Elimine el archivo *.aar de la carpeta <TOMCAT_HOME>\webapps\axis2\WEB-INF\services.
Limitaciones de Axis2
La compatibilidad con la combinación RPC/codificado es limitada. Sin embargo, MapForce puede generar servicios web con esta combinación (tanto SOAP 1.1 como SOAP 1.2). La limitación es que el archivo WSDL original no se obtiene del servidor web.
Esto significa que, por ejemplo, http://127.0.0.1/axis2/services/WS2DB?wsdl no devolvería un archivo .wsdl que podamos usar.
Para servicios web con la combinación documento/literal, la URL anterior devolvería un archivo .wsdl correcto y que podríamos usar, aunque será distinto al original: los comentarios se habrán eliminado y los espacios de nombres habrán cambiado. Sin embargo, seguirá teniendo la misma semántica que el archivo .wsdl original generado por el servicio.
Aunque Axis2 no es compatible con la combinación RPC/codificado, sí puede generar WSDL a partir de código Java implementado (código compilado), por lo que el código generado por MapForce puede procesar mensajes RPC/codificado; Axis2 se usa solamente para el transporte.
Problema conocido: espacios de nombres en el mensaje de respuesta SOAP
El código generado por MapForce crea la instancia de clase javax.xml.transform.TransformerFactory. Cuando se ha cargado la implementación de la clase, esta se puede leer desde la propiedad del sistema javax.xml.transform.TransformerFactory (para más detalles, consulte la documentación de Java para esta clase).
Si la propiedad del sistema javax.xml.transform.TransformerFactory de su entorno Java define la implementación org.apache.xalan.transformer.TransformerIdentityImpl, puede que el mensaje SOAP de respuesta se genere con espacios de nombre incorrectos.
Para evitar esto recomendamos que use la implementación org.apache.xalan.xsltc.trax.TransformerFactoryImpl. Puede hacer esto añadiendo los siguientes parámetros al equipo virtual de Java (JVM):
-Djavax.xml.transform.TransformerFactory=org.apache.xalan.xsltc.trax.TransformerFactoryImpl |
Las instrucciones para añadir el parámetro al JVM dependen del sistema operativo y del servidor que use. Las siguientes indicaciones son válidas para Apache Tomcat 7.0 configurado para que se ejecute como una aplicación de servicio web en Windows 7:
1.Ejecute Tomcat7w.exe (este archivo se encuentra en la subcarpeta \bin de la carpeta raíz de la distribución Tomcat, CATALINA_HOME).
2.Haga clic en la pestaña Java.
3.Introduzca el siguiente texto al final del cuadro de diálogo "Opciones de Java": -Djavax.xml.transform.TransformerFactory=org.apache.xalan.xsltc.trax.TransformerFactoryImpl