欢迎使用普元产品知识库,本知识库包含普元应用开发平台EOSPlatform,流程平台BPS,企业服务总线ESB,微服务平台Microservice,运维管理平台Devops,数据集成平台DI
欢迎使用普元文档库
【问题描述】
场景描述:BPS独立部署,所有API调用只能使用webservice。
问题描述:在调用WebService分布式事务
API(http://host:port/default/WSGlobalTransactionManagerService?wsdl)中的开启
分布式事务commit和rollback方法时系统异常。
帮助中的描述如下:
用soapui调用事务开始成功后取得返回的事务ID后,直接调用提交或回滚接口都报异常(调用回滚或提交接口时,已经按说明添加了soap头),如下。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<soapenv:Fault>
<faultcode>soapenv:Server</faultcode>
<faultstring>Error in extracting message properties</faultstring>
<detail>
<Exception>org.apache.axis2.AxisFault: Error in extracting message properties
at org.apache.rampart.handler.RampartReceiver.invoke(RampartReceiver.java:92)
at org.apache.axis2.engine.Phase.invoke(Phase.java:292)
at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:212)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:132)
【解答】
调用commit方法调试思路如下,可依此尝试调试调用rollback方法:
1、首先在soapui中调出能够调通的报文;
2、根据soapui中报文里header的结构,创建xsd文件(可先创建实体,将xsd文件拿出进行编辑),构造出所需的命名空间以及参数结构
3、在eos中通过webservice构件调用commit服务,打出发出的报文,将报文放到soapui中进行调试,和之前soapui中正常的报文对比,删除或添加一些可疑的属性,等调通后再依此报文调整xsd文件