This rule flags the use of any JAX-RPC specific packages and configuration files. Also, this rule will flag any use of the
jaxrpc-mapping-file tag in XML Mapping files. The following table lists Java packages, configuration files and
XML mapping files impacted by this rule:
Packages |
Configuration Files |
XML Mapping Files |
|---|---|---|
|
|
|
This rule runs validation from the JAX-RPC Conversion tool and has determined no JAX-RPC web services in this scan are a good candidate for binary conversion to JAX-WS using the JAX-RPC Conversion Tool.
The Java API for XML-based RPC (JAX-RPC) is not supported on Liberty or Liberty Core. The technology is deprecated in WebSphere Application Server traditional V9.0 and might be removed in a later version. If your application uses JAX-RPC, the strategic migration path is to use JAX-WS, but here are the alternatives:
The following table compares the four options according to factors that might affect your project.
Project Factors |
Option 1Migrate JAX-RPC web services to JAX-WS web services manually |
Option 2Using the Apache Axis 1 JAX-RPC engine on Liberty |
Option 3Using WebSphere Application Server traditional with its native JAX-RPC engine |
|---|---|---|---|
|
Supported Solution |
Yes JAX-WS is supported as a configurable feature on all Liberty editions except Liberty Core. |
No Axis 1 is not supported. |
Yes JAX-RPC is supported on WebSphere Application Server traditional. |
|
Strategic Solution |
Yes JAX-WS is strategic for all Liberty editions except Liberty Core. |
No Axis 1 is no longer under development. |
No JAX-RPC is deprecated on WebSphere Application Server traditional and might be removed in a later version. |
|
Implementation Complexity |
High This option can be complex for large numbers of JAX-RPC clients and web services. Without using the JAX-RPC Conversion tool to port JAX-RPC services to JAX-WS many changes to the code base are needed. |
Low If the application is already using Axis 1, this option is not complex. Otherwise, this option is of medium complexity. |
Medium Migrating JAX-RPC Web Services to a different engine preserves most of the code base. |
|
Advanced Features |
Yes JAX-WS provides many advanced features such as Annotations, JAXB Binding, and SOAP 1.2. |
No JAX-RPC lacks many of the advanced features that are in JAX-WS. |
No JAX-RPC lacks many of the advanced features that are in JAX-WS. |
|
Specification Compliance |
Yes |
Yes Although JAX-RPC is still part of Java EE specification, it is deprecated with Java EE 6. |
Yes Although JAX-RPC is still part of Java EE specification, it is deprecated with Java EE 6. |
|
Recommendation |
Use this option if you have a few JAX-RPC web services and the application does not meet the requirements of the JAX-RPC Conversion tool. |
Use this option if your JAX-RPC web services already run on Axis 1. |
Use this option if your JAX-RPC web services already run on WebSphere Application Server traditional, or if you have many JAX-RPC web services that do not already run on Axis 1. |
For information on migrating applications from JAX-RPC to JAX-WS, see Web services migration scenarios: JAX-RPC to JAX-WS and JAXB in the online documentation.
For more information on the differences between JAX-RPC and JAX-WS, see JAX-WS application deployment model.
If you already use Axis 1, to use it on Liberty you must include the Axis 1 libraries in the Liberty class path.
If you use an embedded JAX-RPC, you can convert your web services to use Axis 1. The following procedure describes how to migrate a web service from Red Hat JBoss to Axis 1.
java -cp <AXIS LIBRARIES> org.apache.axis.wsdl.WSDL2Java -t java -cp <AXIS LIBRARIES> org.apache.axis.wsdl.WSDL2Java -t -s -o <Output directory> <WSDL file>
For more information about this command, see WSDL2Java Reference on the Apache website.
For more information about WSDD configuration elements, see Deployment (WSDD) Reference on the Apache website.
For example, the following method has a JNDI lookup:
The lookup must be replaced:
private com.ibm.demo.webservices.server.DemoType getService() throws Exception {If you want to use the WebSphere Application Server JAX-RPC engine, then you must use WebSphere Application Server traditional. Liberty does not support JAX-RPC. If you want to use Liberty, you must choose one of the other options.
If JAX-RPC configuration files are detected, but there is no detected use of the JAX-RPC Java API within this application, the configuration files might be from a previous use of the JAX-RPC technology which is no longer needed. Unused configuration can be removed.