在网上看了一下各类的教程,java和.net两种语言生成的webservice之间的互通始终是一个问题,想找一种java调用.net写的webservice代理方法不容易,结果摸索中jboss-ide这个Eclipse插件解决了问题.
当然首先是安装jboss-ide这个插件了(怎么安装就多说了,网上多的是),jboss-ide自带有生成web service-test-client,进入新建-其他-jboss-ide,里面可以看有webservice-webservice -test-client,不用说选择进入.里面会有选择wsdl文件地址的选择,需要注意的是当调用.net写的webservice时,往往是
http://local/ServiceCenter/Service.asmx这种的形式,此时必须在后面加入?wsdl,例如http://local/ServiceCenter/Service.asmx?wsdl,才能正常生成代理,笔者开始的时候就是卡在这里....
生成代理后,往往会出现编译错误,例如笔者就出现如下错误:
oper.setStyle(org.apache.axis.enum.Style.WRAPPED);
oper.setUse(org.apache.axis.enum.Use.LITERAL);
oper.setUse(org.apache.axis.enum.Use.LITERAL);
注意其中的enum的关键字在jdk1.5版本以后已被使用,需要改成
oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
oper.setUse(org.apache.axis.constants.Use.LITERAL);
oper.setUse(org.apache.axis.constants.Use.LITERAL);
才能通过(实在不行就扛掉吧),需要axis1.2以上的支持,这个要注意.
ps:笔者也曾经用过xfire去生成.net的代理,但是兼容性不是太好哦,经常报错!各位掂量!