Web services 有没有办法在使用wsdl2java生成的两个Axis2存根之间打开类型共享?

Web services 有没有办法在使用wsdl2java生成的两个Axis2存根之间打开类型共享?,web-services,wsdl,axis2,wsdl2java,Web Services,Wsdl,Axis2,Wsdl2java,我们有Axis2 POJO服务,目前由一个C#客户机使用,我们正在添加一个Java客户机。生成等价的存根变得有些困难 我们使用.NETWSDL工具生成类,该工具可以在多个服务之间共享类型 http://mymachine/appname/services/Service1?wsdl http://mymachine/appname/services/Service2?wsdl ...ect 对于C#客户机,我们使用VisualStudio附带的wsdl工具,生活非常美好 wsdl /n:MyP

我们有Axis2 POJO服务,目前由一个C#客户机使用,我们正在添加一个Java客户机。生成等价的存根变得有些困难

我们使用.NETWSDL工具生成类,该工具可以在多个服务之间共享类型

http://mymachine/appname/services/Service1?wsdl
http://mymachine/appname/services/Service2?wsdl
...ect
对于C#客户机,我们使用VisualStudio附带的wsdl工具,生活非常美好

wsdl /n:MyPackage /out:ourservice-webservice.cs /sharetypes "http://mymachine/appname/services/Service1?wsdl" "http://mymachine/appname/services/Service2?wsdl"
现在我们试图添加一个Java客户机,而我使用从wsdl2java生成的代码遇到了一个问题

wsdl2java -uri http://mymachine/appname/services/Service1?wsdl -uw -or -o src -p MyPackage  
wsdl2java -uri http://mymachine/appname/services/Service2?wsdl -uw -or -o src -p MyPackage  
在我尝试使用Service1和Service2的调用之前,这似乎是可行的,这两个调用都使用MyTransaction类型

现在,生成的存根显示为Service1Stub.MyTransaction和Service2Stub.MyTransaction,这当然是不同的类型


这是一个问题,因为我们必须在两个服务之间来回移动对象。我假设我缺少一个简单的修复方法?

正如您所指出的,数据绑定类(
MyTransaction
等等)是作为存根类的内部类生成的。因此,每个存根都有自己的
MyTransaction
类副本,该副本与另一个不兼容

wsdl2java参数
-u
将导致数据绑定类作为常规类生成,每个类都在自己的文件中。如果两个
MyTransaction
定义实际上是相同的,那么wsdl2java将为每个
MyTransaction
对象生成相同的类文件,并且您将能够在两个服务之间共享
MyTransaction
对象

http://mymachine/appname/services/Service1?wsdl
http://mymachine/appname/services/Service2?wsdl
...ect
详细描述wsdl2java参数