Websphere 9上的jax-rpc Web服务

时间:2019-04-24 02:22:45

标签: axis jax-rpc websphere-9

我获得了一个Websphere 9,并且需要部署基于jax-rpc的SOAP Web服务。客户端拒绝升级,并要求它必须是jax-rpc,而不是jax-ws。我使用Axis1创建了Web服务,它列出了一组jax-rpc抱怨。

es7

尽管有投诉列表,但该Web服务仍部署到了Websphere 9,在调用该Web服务时,我遇到此错误:

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.

但是我已经在GetBasicPlanCategoryResponse上实现了Serializable

[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)

我还发现websphere 9不推荐使用jax-rpc: https://www.ibm.com/support/knowledgecenter/en/SSEQTP_9.0.0/com.ibm.websphere.base.doc/ae/rmig_depfeat.html

这是为什么Web服务不能在Websphere 9上运行的原因吗?

我需要知道是否有可能在websphere 9上托管一个jax-rpc SOAP Web服务,并且仍然可以由客户端使用。如果是,请向我介绍如何使其工作。如果否,请说明原因。

1 个答案:

答案 0 :(得分:0)

请注意序列化,不仅主对象必须是可序列化的,而且所有子对象也必须是可序列化的。我注意到您的课程包含一个属性: getBasicPlanCategoryReturn

这是对象数组类型。您确定该数组中的所有项目都是实现Serialisable的类吗?