我的第一个webservice接口遇到的问题
我对webservice一直觉得很陌生很难理解,工作中遇到了需要使用webservice的情况只好硬着头皮去做。 我做了一个webservice接口: ePolicyCallBackWSDD.java: public class ePolicyCallBackWSDD { CallBackWSDDService.java: public int saveCallBackPolicy(CallBackPolicyInfo cbpi) { ? ? ? ? ? ? ? ........................ ? ? ? ?//保存CallBackPolicyInfo参数,返回结果 在server-config.wsdd 文件中做了如下配置: ? <service name="ePolicyCallBackWSDD" provider="java:RPC"> 以为万事大吉,把接口地址给客户端同事让他测试,结果报错: org.xml.sax.SAXException: Deserializing parameter 'cbpi':?could not find deserializer for type {http://business.hibernate.callBack.callCenter.generaliChina.com}CallBackPolicyInfo 客户端同事问我能不能把参数改一下,不要使用对象,用数组或者列表,我不死心,觉得总会找到报错原因的,就去查资料,找到了如下答案: 错误提示已经很明确了说你的方法中的book变量没有指定消息解析器,对于自定义类型(即自定义类)必须指定解析器否则AXIS不知道如何把SOAPMessage和方法参数之间进行转换,在wsdd部署文件中的该服务的<service></service>中增加子元素:
<beanMapping qname="myNS:Book" xmlns:myNS="urn:BookService" languageSpecificType="java:Book类的完全类名称"/>
我试着改了一下,在server-config.wsdd文件中作了修改: ? <service name="ePolicyCallBackWSDD" provider="java:RPC"> ? <parameter name="allowedMethods" value="*"/> ? <parameter name="scope" value="request"/> ? <parameter name="className" value="com.generaliChina.callCenter.callBack.webService.ePolicyCallBackWSDD"/> ?<beanMapping qname="myNS:CallBackPolicyInfo" xmlns:myNS="urn:ePolicyCallBackWSDD" languageSpecificType="java:com.generaliChina.callCenter.callBack.hibernate.business.CallBackPolicyInfo"/> ?</service> 再次测试,ok!很激动,感谢万能的网友。 原文地址如下: https://zhidao.baidu.com/question/121567050.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |