XFire 开发小结.
来源:互联网 发布:网络主播视频 编辑:程序博客网 时间:2024/05/21 22:55
前段时间,项目中使用了XFire开发Webservice,现将开发过程小结一下,以备后查。
一、配置web.xml,在Web应用中增加XFire的入口
注意XFire已有了自己的Servlet,不再依赖Spring MVC的DispatchServlet,也就远离了大家不熟悉的Spring MVC URL Mapping,与Spring达致完美的整合。
这里指定了路径为/service/* ,即WebService的URL会被默认生成为http://localhsot:8080/test/service/ServiceName,其中ServiceName默认为下面的接口名。
二、集成Spring
在spring能找到的config目录下,新建applicationContext-xfire.xml文件:
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans default-autowire="byName" default-lazy-init="true">
<!-- 传统方式下XFire-Spring导出POJO为Web服务的配置文件-->
<!--引入XFire的预配置文件-->
<import resource="classpath:org/codehaus/xfire/spring/xfire.xml"/>
<!--XFire WebService 基类-->
<bean id="baseWebService" class="org.codehaus.xfire.spring.remoting.XFireExporter" lazy-init="false"
abstract="true">
<property name="serviceFactory" ref="xfire.serviceFactory"/>
<property name="xfire" ref="xfire"/>
</bean>
<!-- 定义被导出的Web Service -->
<bean id="userService" parent="baseWebService">
<property name="serviceBean" ref="userServiceImpl"/>
<property name="serviceClass" value="com.test.services.UserService"/>
</bean>
</beans>
定义说明:parent为前面定义的基类,serviceClass 为Web Service的接口,serviceBean为Web Service的接口实现类。
当然,在spring配置文件中定义userServiceImpl是必不可少的,如在serviceContext.xml中定义如下:
若不集成Spring,则需要定义一个services.xml文件,存放在/src/META-INF/services.xml
<service >
<name>userService</name>
<namespace>http://localhost:8080/service/userService</namespace>
<serviceClass>com.test.service.UserService</serviceClass>
<implementationClass>com.test.service.UserServiceImpl</implementationClass>
</service>
</beans>
参数说明:
1、name 元素:表示该webService的名称
2、namespace 元素:表示该webService的命名空间
3、serviceClass 元素:表示该webService的接口
4、implementationClass 元素:表示该webService的实现类
三、编写窄接口,抽取POJO中要导出的服务
从已有的UserManager.java中,抽取出一个窄接口,仅暴露需要导出为WebService的方法。注意UserManger.java是POJO,不需要任何WebService相关代码。
窄接口一方面满足了安全要求,不用整个UserManager所有方法导出为WebService;另一方面,XFire暂时也只支持基于接口的Proxy。
List<User> getUsers();
}
四、配置Java-XML Binding
如果返回类型是List或Map,并且里面存放的是自定义类的话,则需要增加一个对于服务接口的配置文件。该文件的命名规则是 接口文件名.aegis.xml。例如接口是UserService.java的话,则此配置文件命名为UserService.aegis.xml。注意此配置文件须与接口放在同一目录下面。
<mappings>
<mapping >
<method name="getUsers">
<return-type componentType="com.test.domain.User"/>
</method>
</mapping>
</mappings>
getUsers方法返回类型是List,里面装的User对象。对于这种类型的方法,在配置文件中描述了它的返回值类型。
如果返回的类型是Map的话,做法和List一样。但定义的类型,是Map中的Value部分,并且这样的话,Map中Value所存放的对象就必须全部是同一种类啦。
参考资源:
http://wiki.springside.org.cn/display/springside/XFire
http://www.javaeye.com/topic/70005
http://junewolf.javaeye.com/blog/52523
<servlet-name>xfire</servlet-name>
<servlet-class>org.codehaus.xfire.spring.XFireSpringServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>xfire</servlet-name>
<url-pattern>/service/*</url-pattern>
</servlet-mapping>
- XFire 开发小结.
- xfire webservice抛出异常小结
- [webservices开发]XFire实战
- [webservices开发]配置XFire
- xfire开发webservice
- xfire的客户端开发
- 使用XFire开发WebService
- XFire开发WebService服务器端
- XFire开发WebService实例
- xfire的客户端开发
- XFire开发步骤
- XFire WebService 开发实例
- 使用XFire开发WebService
- java XFire 开发 WebService
- xfire webService 服务器开发
- Xfire spring webservices开发
- 使用XFire开发WebService
- [Java] Xfire开发WebService
- 十年相聚
- GetSystemDefaultLangID 取得系统默认ID 对应的国家地区
- test
- eclipse+tomcat+jsp
- %TYPE的使用
- XFire 开发小结.
- extjs 上传文件 fileUpload
- Socket程序从windows移植到linux下需要注意的
- js电子邮箱验证代码
- Microsoft Message Queuing介绍
- windows command
- 第一章 高频电路基本常识 第一部分
- 文件编码的判定(UTF8,UTF16),及转换
- 指定url,获取其源代码(html)放入本页,不分本域外域