java Web Service技术比较

因为都是国外的厂商,很少考虑,或者考虑不够中文问题,所以本文中会多次提到各个技术对中文的支持情况。文中所用wsdl标签基本都是中文标签。

Axis2生成的客户端有一大好处,生成的测试用例非常全。这是其它几个客户端生成难以比拟的。Ps: 生成测试用例需要指定参数-t

axis2使用adbADB Axis2 的数据绑定扩展。与其他数据绑定框架不同,ADB 代码仅可用于 Axis2 Web 服务。这个限制是 ADB 的一大局限,但也带来了一些好处。由于 ADB Axis2 进行了集成,因此其代码可针对 Axis2 要求进行优化。
生成的字符编码是utf-8格式:
wsdl2java -u -t -o . -p com.ruler -uri http://192.168.1.101:8080/testmyeclipse/ruler?wsdl
如果url中包括con比如www.con.com那么会有文件无法生成,因为windows中不能建立con文件夹。
并且类型如
    <xs:element name="
回执要求">
        <xs:annotation>
            <xs:documentation>
这里是回执</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
            <xs:restriction base="xs:string"/>
        </xs:simpleType>
    </xs:element>
会生成两个文件:回执要求.java、回执要求_type0.java,使用起来很不方便。

axis2使用xmlbeans, XMLBeans 是包含数据绑定层的通用 XML 处理框架。其源自一个 BEA Systems 项目,后来提交给了 Apache Foundation

生成的文件格式未知:

wsdl2java -d xmlbeans -t -o . -p com.ruler -uri http://192.168.1.101:8080/testmyeclipse/ruler?wsdl
Exception in thread "main" org.apache.axis2.wsdl.codegen.CodeGenerationException
: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
估计是中文问题,没有成功。

axis2使用jaxbjaxb是业界标准,axis2xfiresun都有提供支持。

生成的字符编码格式是gb2312

wsdl2java -d jaxbri -t -o . -p com.ruler -uri http://192.168.1.101:8080/testmyeclipse/ruler?wsdl

sun使用netBeans6生成客户端,使用的是jaxb,生成的字符编码是gb2312编码的,但是netBeans6会用utf-8格式打开,出现乱码,netBeans6不能修改文件的打开格式,所以需要用外界工具修改,如ultraEdit打开(没有乱码),然后拷贝到netBeans6中:

wsimport -d D:/NetBeansProjects/WebApplication1/build/generated/wsimport/binaries -extension -keep -s D:/NetBeansProjects/WebApplication1/build/generated/wsimport/client -catalog D:/NetBeansProjects/WebApplication1/catalog.xml -verbose D:/NetBeansProjects/WebApplication1/src/conf/xml-resources/web-service-references/ruler/wsdl/192.168.1.101_8080/testmyeclipse/ruler.wsdl -p com.ruler -wsdllocation http://192.168.1.101:8080/testmyeclipse/ruler?wsdl

xfire生成客户端,生成的字符编码是gb2312格式。

参考文章:

Axis2 数据绑定:

http://www.ibm.com/developerworks/cn/webservices/ws-java3/index.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值