Esta regla detecta la presencia de servicios Web de JAX-RPC basándose en los
siguientes criterios:
- La presencia del archivo, web-services.xml
- La presencia del archivo, weblogic-webservices.xml y el archivo webservices.xml, en la misma carpeta
Solución manual
Para generar servicios web JAX-RPC basados en descriptores de despliegue de servicios web WebLogic J2EE, debe crear manualmente una secuencia de comandos Ant mediante tareas específicas IBM® Ant específicas. El script debe añadirse a la carpeta raíz del proyecto si no existe ya un archivo generado por IBM Ant. Estas tareas se encargarán de generar los servicios web JAX-RPC a partir de los descriptores de despliegue.
Propiedades de la regla
Debe proporcionar los valores correctos para las propiedades de la regla para garantizar resultados precisos durante el análisis. Estas propiedades deben ser revisadas y configuradas adecuadamente en función del contexto de su aplicación. Las propiedades de esta regla son:
- Nombre del script Ant generado:
Especifica el nombre de la nueva secuencia de comandos Ant generada debe ser un nombre de archivo válido. El valor no debe incluir barras diagonales. El script estará en la carpeta raíz del proyecto.
Valor por omisión: build-ibm-ws.xml
- Nombre de la carpeta de generación:
Especifica el nombre de la carpeta en la que residirán los artefactos de generación; El valor no debe incluir barras diagonales ni diagonales inversas. La carpeta de generación estará en la carpeta raíz del proyecto.
Valor por omisión: ibm-ws-gen
Classpath Ant
La classpath de Ant se calcula a partir del proyecto Eclipse.
Es importante comprobar que todos los
elementos que son necesarios para la compilación estén en la classpath de Eclipse.
Servicios JAX-RPC definidos en el archivo web-services.xml
Según la información y el tipo de servicios definidos en
web-services.xml, se genera un script Ant y probablemente
un código Java adicional que representa la interfaz de punto final de servicio Web
para reproducir el servicio JAX-RPC.
- Componentes soportados
Sólo los enterprise beans de sesión sin estado (<stateless-ejb>) y los componentes de Java (R) (<java-class>) pueden ser reconocidos y convertidos.
- Componentes EJB sin estado:
El archivo JAR Enterprise JavaBeans (TM) (EJB), definido en el atributo path del elemento <ejb-link>, debe existir en el proyecto. La corrección automatizada escanea el archivo JAR EJB y genera una nueva clase Service Endpoint Interface (SEI) basada en la clase remota EJB.
Las interfaces SEI difieren de las interfaces remotas EJB en que que la clase debe extender
java.rmi.Remote
, y cada método debe lanzar la excepción,
java.rmi.RemoteException
.
La corrección automatizada utilizará Java reflection en la interfaz remota EJB para generar el nuevo SEI .
Por lo tanto, asegúrese de que el classpath de su proyecto Eclipse incluye todas las clases, archivos JAR y directorios necesarios para para cargar correctamente la clase remota EJB.
El SEI debe generarse en la carpeta, sei, dentro de la carpeta de generación, según lo proporcionado por el usuario en la regla properties. El paquete SEI coincide con el paquete de interfaz remota EJB y el nombre del SEI será el mismo que el de la interfaz remota EJB con la palabra SEI añadida. Además, la nueva carpeta SEI se agrega a la ruta de clases del proyecto.
- Componentes de clase Java:
De forma similar a los componentes EJB, la corrección automatizada generará una interfaz de punto final de servicio a partir de la clase Java que se define en el atributo <class-name>.
- Destinos Ant generados:
El script Ant generado contiene objetivos para generar el archivo WSDL y el servicio JAX-RPC basado en el nuevo SEI que que se creará.
El objetivo de generación WSDL tendrá el nombre, genWSDL_ssss, donde ssss es el nombre del servicio JAX-RPC que fue proporcionado en el campo de atributo name del elemento <web-service.
Los objetivos de generación de servicios tienen el nombre, genService_pppp, donde pppp es el nombre del componente a partir del atributo name del elemento <stateless-ejb> o <java-class>.
La corrección automatizada no utilizará la información proporcionada en otros elementos, como <handlers-chain>, <types>, <operations>, <security>, etc.
Servicios JAXRPC definidos en el archivo webservices.xml
Según la información y el tipo de servicios definidos en el archivo
webservices.xml, se genera un script Ant para reproducir el servicio JAX-RPC.
- Destinos Ant generados:
El script Ant generado contiene destinos para generar el archivo WSDL y el servicio
JAX-RPC.
El objetivo de generación WSDL sólo se genera si no se puede localizar el archivo WSDL definido en el elemento <archivo WSDL>.
Si se crea, el objetivo de generación WSDL tiene el nombre genWSDL_ssss,, donde ssss es el nombre del servicio definido en el elemento <webservice-description-name> en el elemento <webservice-description-name>.
Los objetivos de generación de servicios tendrán el nombre genService_pppp, donde pppp es el nombre del puerto definido por el elemento <port-component-name>.
Tareas Ant de IBM WebSphere Application Server
WebSphere(R) Application Server incluye tareas Ant como, por ejemplo, java2wsdl y
wsdl2java, para generar los artefactos necesarios para los servicios JAX-RPC. El script
Ant generado utiliza estas tareas para compilar el servicio.
Puede obtenerse información adicional sobre estas tareas en la
documentación de WebSphere Application Server.
Ejecución del script Ant
Una vez elaborado el script Ant, visualícelo y añada personalizaciones adicionales si es necesario.
Consulte la documentación del servidor de aplicaciones sobre personalizaciones adicionales de las tareas Ant de IBM.
Hay que ejecutar el script con las herramientas Ant que
se incluyen en WebSphere Application Server. El script Ant de IBM
se puede ejecutar desde:
- WAS_HOME\bin\ws_ant.bat en los sistemas operativos Windows(R)
- WAS_HOME\bin\ws_ant.sh en los sistemas operativos UNIX(R)
Por ejemplo: c:\IBM\AppServer\bin\ws_ant.bat -f
c:\eclipse\MyProject\ibm-ws-gen.xml genService_TestService
Una vez ejecutados los objetivos de Ant, los artefactos producidos residen en la carpeta de generación en la carpeta de generación. El usuario puede inspeccionar el código y los código generado y los descriptores de despliegue, y luego añadir estos artefactos a sus módulos módulos.
Recomendación: Considerar la migración a JAX-WS
Si ya está realizando cambios en sus servicios web JAX-RPC como parte de sus esfuerzos de migración o modernización, le recomendamos encarecidamente que evalúe pasar a JAX-WS ( Java API para servicios web XML).
JAX-WS es el sucesor de JAX-RPC y ofrece varias ventajas:
- Diseño moderno de la API con mejor soporte para anotaciones e integración con Java EE
- Interoperabilidad mejorada con otros marcos y estándares de servicios web
- Mejores herramientas y soporte en servidores de aplicaciones e IDE modernos
- Viabilidad a largo plazo, ya que JAX-RPC se considera una tecnología heredada
Migrar ahora a JAX-WS puede reducir la deuda técnica futura y alinear su aplicación con los estándares actuales de servicios web Java.
Para obtener orientación sobre la migración de JAX-RPC a JAX-WS, consulte la documentación Escenarios de migración de servicios web: JAX-RPC a JAX-WS y JAXB.