好嘞,今天跟大家伙儿聊聊我折腾 `java xfire` 的那些事儿,也算是给自己做个实践记录。
一开始接触 `xfire`,那会儿还是个菜鸟,就想着搞明白 `webservice` 到底是个啥玩意儿。听前辈们说 `xfire` 比较简单,上手快,就决定拿它开刀。
当然是找资料,把 `xfire` 的 `jar` 包啥的都下载下来。然后,新建一个 `java` 项目,把 `jar` 包往 `lib` 目录里一扔,就开始我的第一个 `webservice` 服务。
我记得当时写一个特别简单的接口,就一个方法,输入一个字符串,返回一个 “Hello, ” 加上这个字符串。代码那叫一个简陋,但是当时觉得特别有成就感,毕竟是自己亲手写出来的。
代码大概长这样:-
public class HelloServiceImpl {
-
public String hello(String name) {
-
return "Hello, " + name;
就是配置 `xfire` 的 `servlet`。在 `*` 文件里加一段配置,告诉 `tomcat`, 哪些请求交给 `xfire` 处理。这个过程还是挺顺利的,毕竟网上资料多,照着抄就完事儿。
配置好之后,启动 `tomcat`,在浏览器里输入 `webservice` 的地址,还真能访问,看到返回的 `xml` 数据,当时心里那个激动,觉得自己简直是个天才。
然后,就是写客户端调用这个 `webservice`。`xfire` 也提供挺方便的 `api`,可以根据 `wsdl` 文件生成客户端代码。有客户端代码,调用 `webservice` 就跟调用本地方法一样简单。
但是,好景不长,很快就遇到问题。比如,参数类型不匹配,`xml` 格式不对等等。那时候就只能一遍一遍地调试,看错误日志,各种百度、google。真是踩不少坑,也学到不少东西。
后面,又尝试 `xfire` 和 `spring` 的整合。不得不说,整合之后确实方便很多,`webservice` 的发布和管理都变得更加简单。而且`spring` 的 `ioc` 容器也能更好地管理 `webservice` 的实例。
`xfire` 确实是个不错的 `webservice` 框架,简单易用,适合入门。但是,随着业务的复杂化,`xfire` 的一些缺点也暴露出来。比如,性能相对较差,对复杂数据类型的支持不够好等等。
后来我转向 `cxf`。
`cxf` 是在 `xfire` 的基础上发展起来的,功能更加强大,性能也更而且`cxf` 对各种 `webservice` 标准的支持也更加完善。`cxf` 的学习曲线也更陡峭一些,需要花更多的时间去学习和掌握。
不过有 `xfire` 的基础,学习 `cxf` 也就没那么困难。毕竟很多概念和原理都是相通的。而且`cxf` 的文档也比较完善,遇到问题可以查阅文档或者在网上搜索。
我主要用 `cxf` 来开发 `webservice`。虽然 `xfire` 已经很少用,但是它仍然是我 `webservice` 学习的起点。没有 `xfire` 的基础,就没有我今天的 `cxf` 经验。
如果你也想学习 `webservice`,不妨从 `xfire` 开始。虽然它可能不是最好的选择,但绝对是最容易入门的选择。等你对 `webservice` 有更深入的解之后,再转向 `cxf` 或者其他更高级的框架也不迟。
今天的分享就到这里,希望对大家有所帮助。以后有机会再跟大家分享我在 `webservice` 开发中的其他经验和教训。