16.3.1 使用导出器导出Web Service
http://book.51cto.com 2007-08-10 11:32 陈雄华 电子工业出版社博文视点 我要评论(0)
摘要:《精通Spring 2.x——企业应用开发详解》第16章简明扼要地介绍了XFire体系结构以及在Spring中通过XFire实施WS-Security等.本节介绍了使用导出器导出Web Service.
标签:Web Service XFire Spring 2.x Java 应用 开发 精通Spring 2.x——企业应用开发详解
16.3 将POJO Bean导出为Web Service
通过XFire为Spring提供的服务导出器可以轻松地将POJO导出为标准的Web Service,此外,XFire还允许我们使用JSR 181注解对POJO进行标注,无须使用XML配置就可以导出为Web Service,各种复杂的转换细节被巧妙地隐藏在XFire之中。
16.3.1 使用导出器导出Web Service
XFire为Spring提供了方便易用的导出器XFireExporter,借助XFireExporter的支持,我们可以在Spring容器中将一个POJO导出为WebService。BbtForum是Baobaotao论坛业务服务类,它拥有众多的业务方法,我们现在希望将其提供查询最近几天精华帖子数的业务方法开放为Web Service。为了避免过多地开放不必要的接口方法,需要定义一个BbtForumService窄接口,它定义那些需要开放为Web Service的业务方法:
将一个业务类所有需要开放为Web Service的方法通过一个窄接口来描述是值得推荐的做法,这让Web Service的接口显得很“干净”。其次,XFire的导出器也需要服务接口的支持,因为它采用基于接口的动态代理技术。真实的业务类当然需要实现Web Service窄接口:
BbtForum中的方法在真实的系统中应该引用其他的业务类或DAO获取数据库中的真实数据,为了简化实例,我们通过一段简单的代码进行模拟,如②所示。
在拥有了窄接口之后,剩余的工作就是在Spring配置文件中通过XFireExporter将BbtForum#getRefinedTopicCount()方法导出为Web Service,具体配置如代码清单 161所示:
上面的配置将BbtForum所有定义在BbtForumService窄接口中的方法导出为Web Service。在XFire核心JAR包中拥有一个预定义的Spring配置文件,它定义了XFire在Spring中必须用到的一些Bean和资源,需要引入这个预定义的配置文件,如①所示。紧接着,就可以使用XFireExporter将业务类导出为Web Service了。②-1、②-2为导出器引入XFire环境,对于任何导出器,这都是标准的配置,所以如果有多个导出器,可以将这两个属性通过一个父<bean>标签进行抽象。而②-3、②-4分别定义了业务服务类及需要导出为Web Service方法的窄接口。Web Service的默认名称是窄接口的类名,即BbtForumService,用户可以通过name属性显式指定Web Service的名称,如②-5所示。
通过这个简单的配置,就完成了将业务服务类开放为Web Service的工作,接下来,我们就可以通过配置Web 服务器的web.xml,将其通过HTTP传输协议开放出去。