本帖中的代码我举个栗子,不代表真实情境。
之前用WSDL2Java生成的代码与WSDL的参数顺序是对应的,可以正常调用。
请求报文类似于:...
<fruits>
<pear>10</pear>
<banana>20</banana>
<apple>60</apple>
</fruits>
...这种报文发送到目前手中的项目对接的ESB中是可以运行的。后来,为了精简和高效化代码,我们使用了RPC方式重构了代码,如:
Java对象结构如下public class Frutes
{
private int pear;
private int banana;
private int apple; public int setPear(int pear){this.pear=pear;}
public int getPear(){return this.pear;}
...
}抓包后发现此对象被转换成了形如下面的报文...
<fruits>
<apple>60</apple>
<banana>20</banana>
<pear>10</pear>
</fruits>
...
注意!RPC方式转换后报文中,参数的顺序是按照参数名排序的,而之前的报文是根据WSDL定义排序的。顺序不对应通常来讲似乎不算问题,但是奇葩就奇葩在,ESB接口的逻辑要求必须按照WSDL的顺序发送请求,否则会返回逻辑错误。
至于ESB那边怎么处理我这里是没法管的,求高手给出靠谱的解决参数顺序问题的方法。JavaWSDLESBWebServiceAxis2
之前用WSDL2Java生成的代码与WSDL的参数顺序是对应的,可以正常调用。
请求报文类似于:...
<fruits>
<pear>10</pear>
<banana>20</banana>
<apple>60</apple>
</fruits>
...这种报文发送到目前手中的项目对接的ESB中是可以运行的。后来,为了精简和高效化代码,我们使用了RPC方式重构了代码,如:
Java对象结构如下public class Frutes
{
private int pear;
private int banana;
private int apple; public int setPear(int pear){this.pear=pear;}
public int getPear(){return this.pear;}
...
}抓包后发现此对象被转换成了形如下面的报文...
<fruits>
<apple>60</apple>
<banana>20</banana>
<pear>10</pear>
</fruits>
...
注意!RPC方式转换后报文中,参数的顺序是按照参数名排序的,而之前的报文是根据WSDL定义排序的。顺序不对应通常来讲似乎不算问题,但是奇葩就奇葩在,ESB接口的逻辑要求必须按照WSDL的顺序发送请求,否则会返回逻辑错误。
至于ESB那边怎么处理我这里是没法管的,求高手给出靠谱的解决参数顺序问题的方法。JavaWSDLESBWebServiceAxis2
解决方案 »
- swftools 转换报错 Error: Couldn't create a font for 'QXRUDT+SimSun'
- hibernate查询数据丢失
- 怎样在用户关闭浏览器时关闭session
- 活跃网络面视题分享-面视题分享
- 为什么我生成的schema不起作用?
- 使用axis调用webservice 问题
- 问个有关Struts1.2的问题
- 如果不在WEB-INF/web.xml部署<taglib>描述符还有其他的方法可以部署并运行JSTL么?
- 求助:一个关于实体bean(cmp)的部署问题.急!多谢!
- maven 导入依赖报错
- 项目不能被tomcat加载,是哪里的问题?
- ireport 分组问题
建议别使用批处理生成部署,比较麻烦,容易出错。
楼主的问题未遇到过。
我的Axis2也都用eclipse插件生成的aar包,运行良好