CXF SOAP WebService服务端遇到的一些报错

本文介绍了使用CXF实现SOAP WebService时遇到的常见错误及其解决方案,包括命名空间不匹配、SOAPAction头信息不一致等问题,并提供了具体的代码示例。

最近学习用CXF做SOAP WebService,但是客户端调用是其他公司用C#做的,所以基本不能指望其作出修改。
调用时,我的服务端遇到了如下一些报错

报错1
org.apache.cxf.interceptor.Fault: Unmarshalling Error: 意外的元素 (uri:”http://webservice.*.com/”, local:”arg”)。所需元素为<{}arg>
报错1

这里报错是因为SOAP请求xml中包含命名空间:http://webservice.*.com/
所以需要在接口方法中指明命名空间targetNamespace
另外需要注意,name属性的值需要与客户端调用的参数arg一致。

public String stopFuncion(@WebParam(name="arg",targetNamespace ="http://webservice.*.com/")String stopFuncionPara);

报错2
org.apache.cxf.interceptor.Fault: The given SOAPAction http://webservice.*.com/stopFunction does not match an operation.
报错2

报错是因为http请求Headers中包含如下header:
SOAPAction=[“http://webservice.*.com/stopFunction”]
服务端接口中stopFunction方法需要匹配该action:

@WebMethod(action="http://webservice.*.com/stopFunction")
public String stopFunction(@WebParam(name="arg",targetNamespace ="http://webservice.*.com/")String stopFunction);

报错解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值