Axis2返回报文解析丢失参数
来源:互联网 发布:海岛奇兵钻石辅助软件 编辑:程序博客网 时间:2024/06/14 12:40
背景
账管访问ESB的外部接口获取发票信息(发票代码A,发票号码B,发票册号C)。ESB返回了A,B,C组成的报文,但是账管只获取到B,C。而A数据为空。
形式:通过后台远程访问webservice
后台:c++ socket进程
数据解析:axis2/C解析库
本着开发怀疑的精神。
1、先确认了账管只是访问ESB获取参数,使用的也是ESB提供的wsdl,那么问题应该出现在ESB返回报文到账管的过程上
2、既然报文有了,那么问题就出现在报文解析上面,而这部分是隐藏在axis2库里面的。
3、而账管解析报文是根据wsdl文件中的参数来进行解析的,
4、从上面可以看出wsdl中的参数顺序与ESB返回报文中数据顺序不一致。本以为参数数据的解析应该与顺序无关,但事实却往往不是想象中的那样。
总结:
webservice +axis2 +wsdl形式的网络通信中,报文的解析参数顺序必须一致,以自动生成的wsdl为准。任何试图人为的修改wsdl都可能造成数据传输问题比如上面所示的例子。
0 0
- Axis2返回报文解析丢失参数
- Axis2传递date类型参数丢失时分秒
- axis2使用教程、webservices自定义参数,webservices自定义返回值
- TCP报文丢失
- Oracle存储过程请求WebService并解析返回报文
- 发送报文请求指定的servlet,并解析返回报文案例
- 解析xml文件中定义的请求报文和返回报文字段
- 报文解析
- 报文解析
- 报文解析
- 利用AXIS2返回JSON
- 处理xml返回报文
- JSON报文返回格式
- Webservice axis2打印请求、响应报文方法
- axis2 接口默认参数名称和方法返回值变量名修改
- Axis2 wsdl2java参数说明
- Axis2: wsdl2java 参数注解
- Axis2 参数详解
- bzoj 坑&&坑
- IO管理三usb之irq
- UI界面结构
- android service 本地 远程 总结
- Syntax error, parameterized types are only available if source level is 1.5
- Axis2返回报文解析丢失参数
- STL之优先队列priority_queue
- 基于mac,使用android studio进行ndk开发(1)
- android xml 绘图 shape 解析
- When Documents Become Databases – Tabulizer R Wrapper for Tabula PDF Table Extractor
- saltstack Pillar
- Nginx interprocess communication
- ubuntu上配置wireshark的权限
- Volley网络请求框架的使用