作者:江南白衣
本文来自SpringSide WIki,请留意Wiki上的最新版本。(wiki于11.27更新)。
请先阅读:XFire生火指南(上)
1. JSR181
JSR181式通过annotated POJO ,零配置文件的导出Web服务,是BEA倡导的,JavaEE5里的正规方式, XFire作了良好的支持。
但是,XFire关于JSR181方式的文档还不够清晰,请完整阅读本节以避免其中的数个陷阱。
1.1 参考文章
- Spring, Hibernate and XFire
- Webservices with Spring, XFire and jsr181
- Basic Spring Web services with XFire and JSR 181
- XFire JSR181参考文档
1.2 ApplicationContext.xml
因为配置都写在annotation,applicationContext.xml文件的内容比较固定。需要注意JSR181WebAnnotations与HandlerMapping不能lazy init.
<
beans
default-autowire
="byName"
default-lazy-init
="true"
>
<!-- 引入XFire的预配置文件 -->
< import resource ="classpath:org/codehaus/xfire/spring/xfire.xml" />
<!-- 获得applicationContext中所有bean的JSR181 annotation -->
< bean id ="webAnnotations" class ="org.codehaus.xfire.annotations.jsr181.Jsr181WebAnnotations" lazy-init ="false" />
<!-- 定义handler mapping,将所有JSR181定义的bean导出为web service -->
< bean id ="jsr181HandlerMapping" class ="org.codehaus.xfire.spring.remoting.Jsr181HandlerMapping" lazy-init ="false" >
<!-- 引入XFire的预配置文件 -->
< import resource ="classpath:org/codehaus/xfire/spring/xfire.xml" />
<!-- 获得applicationContext中所有bean的JSR181 annotation -->
< bean id ="webAnnotations" class ="org.codehaus.xfire.annotations.jsr181.Jsr181WebAnnotations" lazy-init ="false" />
<!-- 定义handler mapping,将所有JSR181定义的bean导出为web service -->
< bean id ="jsr181HandlerMapping" class ="org.codehaus.xfire.spring.remoting.Jsr181HandlerMapping" lazy-init ="false" >