WebService的定义、教程等网上有很多,不做搬用工,仅仅写一点该段时间调研使用上的总结。
在介绍cxf之前,先说说为什么用WebService。我们的需求是为了数据传输,而不是访问,所以ftp、http都是可行的,而且不角色webservice在此处优势很大。但是既然组织觉得尝试webservice,就开始干活。
单从Java架构上,网上主要是xFile、Axias和cxf。选择cxf的原因更多是因为spring。
Apache CXF上有官方的一些documentation,建议看下java_first_spring_support。直接改url可以看到更多apache发布的source code,不过是svn的,请自行下载svn工具。Demo代码不贴了,网上已经有很多搬运工。cxf借助spring的bean注入,jws规范发布一个可访问的webservice。从官网可以看到其还支持security的验证。cxf的附件官方推荐方式是base64,server端采用javax.activation.DataHandler来解析。这对于JAVA-JAVA之间的交互非常方便,因为DataHanlder并不是cxf的封装。但如果是异构系统,并非说c#,php等不能封装成,而是增加了数据结构转换成本。我的假想是采用标准的wsdl来进行数据交互,但这就限制了附件方式。
附件是一些demo的代码,仅供参考。至于axis,httpclient等访问webservice的问题,请自行查看资料。