I am given a websphere 9 and need to deploy SOAP webservice based on jax-rpc. The client refused to upgrade and demanded that it must be jax-rpc, no jax-ws. I used Axis1 to create the webservice and it listed a set of jax-rpc complains.
The service class "com.aiab.pna.webservices.PlanName" does not comply to one or more requirements of the JAX-RPC 1.1 specification, and may not deploy or function correctly.
The value type "org.apache.axis.description.TypeDesc" used via the service class "com.aiab.pna.webservices.PlanName" does not have a public default constructor. Chapter 5.4 of the JAX-RPC 1.1 specification requires a value type to have a public default constructor, otherwise a JAX-RPC 1.1 compliant Web service engine may be unable to construct an instance of the value type during deserialization.
The value type "org.apache.axis.utils.BeanPropertyDescriptor" used via the service class "com.aiab.pna.webservices.PlanName" does not have a public default constructor. Chapter 5.4 of the JAX-RPC 1.1 specification requires a value type to have a public default constructor, otherwise a JAX-RPC 1.1 compliant Web service engine may be unable to construct an instance of the value type during deserialization.
The value type "org.apache.axis.description.FieldDesc" used via the service class "com.aiab.pna.webservices.PlanName" does not have a public default constructor. Chapter 5.4 of the JAX-RPC 1.1 specification requires a value type to have a public default constructor, otherwise a JAX-RPC 1.1 compliant Web service engine may be unable to construct an instance of the value type during deserialization.
The field or property "searchPlanListByKeywordAndCategoryReturn" on the value type "com.aiab.pna.webservices.bean.SearchPlanListByKeywordAndCategoryResponse" used via the service class "com.aiab.pna.webservices.PlanName" has a data type, "java.lang.Object", that is not supported by the JAX-RPC 1.1 specification. Instances of the type may not serialize or deserialize correctly. Loss of data or complete failure of the Web service may result.
The field or property "noClasses" on the value type "org.apache.axis.description.TypeDesc" used via the service class "com.aiab.pna.webservices.PlanName" has a data type, "java.lang.Class", that is not supported by the JAX-RPC 1.1 specification. Instances of the type may not serialize or deserialize correctly. Loss of data or complete failure of the Web service may result.
The field or property "noObjects" on the value type "org.apache.axis.description.TypeDesc" used via the service class "com.aiab.pna.webservices.PlanName" has a data type, "java.lang.Object", that is not supported by the JAX-RPC 1.1 specification. Instances of the type may not serialize or deserialize correctly. Loss of data or complete failure of the Web service may result.
The field or property "actualType" on the value type "org.apache.axis.utils.BeanPropertyDescriptor" used via the service class "com.aiab.pna.webservices.PlanName" has a data type, "java.lang.Class", that is not supported by the JAX-RPC 1.1 specification. Instances of the type may not serialize or deserialize correctly. Loss of data or complete failure of the Web service may result.
The field or property "type" on the value type "org.apache.axis.utils.BeanPropertyDescriptor" used via the service class "com.aiab.pna.webservices.PlanName" has a data type, "java.lang.Class", that is not supported by the JAX-RPC 1.1 specification. Instances of the type may not serialize or deserialize correctly. Loss of data or complete failure of the Web service may result.
The field or property "propertyDescriptorMap" on the value type "org.apache.axis.description.TypeDesc" used via the service class "com.aiab.pna.webservices.PlanName" has a data type, "java.util.Map", that is not supported by the JAX-RPC 1.1 specification. Instances of the type may not serialize or deserialize correctly. Loss of data or complete failure of the Web service may result.
The field or property "javaType" on the value type "org.apache.axis.description.FieldDesc" used via the service class "com.aiab.pna.webservices.PlanName" has a data type, "java.lang.Class", that is not supported by the JAX-RPC 1.1 specification. Instances of the type may not serialize or deserialize correctly. Loss of data or complete failure of the Web service may result.
The field or property "getBasicPlanCategoryReturn" on the value type "com.aiab.pna.webservices.bean.GetBasicPlanCategoryResponse" used via the service class "com.aiab.pna.webservices.PlanName" has a data type, "java.lang.Object", that is not supported by the JAX-RPC 1.1 specification. Instances of the type may not serialize or deserialize correctly. Loss of data or complete failure of the Web service may result.
The webservice is deployed to websphere 9 despite the complain list, when calling the webservice, I encountered this error:
[4/24/19 10:02:54:402 SGT] 000000a3 SOAPPart E com.ibm.ws.webservices.engine.SOAPPart _getWebServicesInputSource WSWS3227E: Error: Exception:
WebServicesFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException
faultString: java.io.IOException: WSWS3037E: Error: Serialization cannot occur for com.aiab.pna.webservices.bean.GetBasicPlanCategoryResponse.
faultActor: null
faultDetail:
java.io.IOException: WSWS3037E: Error: Serialization cannot occur for com.aiab.pna.webservices.bean.GetBasicPlanCategoryResponse.
at com.ibm.ws.webservices.engine.WebServicesFault.makeFault(WebServicesFault.java:283)
at com.ibm.ws.webservices.engine.SOAPPart.writeTo(SOAPPart.java:925)
at com.ibm.ws.webservices.engine.SOAPPart.writeTo(SOAPPart.java:840)
but I have implemented Serializable on GetBasicPlanCategoryResponse
public class GetBasicPlanCategoryResponse implements java.io.Serializable {
private java.lang.Object[] getBasicPlanCategoryReturn;
public GetBasicPlanCategoryResponse() {
}
I also found that websphere 9 deprecated the jax-rpc: https://www.ibm.com/support/knowledgecenter/en/SSEQTP_9.0.0/com.ibm.websphere.base.doc/ae/rmig_depfeat.html
is this why the webservice does not work on websphere 9?
I need to know if it is possible at all to host a jax-rpc SOAP webservice on websphere 9 and still consumable by client. If yes, please enlighten me on how to make it work. If no, please explain the reason.