实现WebServices二:使用XFireSpringServlet与ServiceBean
来源:互联网 发布:在虚拟机上配置nginx 编辑:程序博客网 时间:2024/05/17 21:39
使用XFire进行web services开发有三种方式:
1. 不集成Spring: 配置services.xml 文件和web.xml(配置org.codehaus.xfire.transport.http.XFireConfigurableServlet servlet)
2. Spring使用XFireSpringServlet方式。
3.Spring集成使用org.springframework.web.servlet.DispatcherServlet方式
使用XFireSpringServlet进行实现的步骤:
1、定义服务接口;
2、实现服务接口;
3、更新web.xml添加Spring监听器相关XFire相关的servlet(即添加XFireSpringServlet)和Spring监听器;
4、在Spring文件application.xml配置ServiceBean;
5、测试web services是否部署成功
1、定义服务接口
package com.mybank.xfire.example;
public interface IBankingService {
public String transferFunds(
String fromAccount, String toAccount, double amount, String currency);
}
注:服务接口不能少,客户端访问web services就是通过接口进行访问的,实现类对客户端是透明的。
2、实现服务接口
package com.mybank.xfire.example;
import java.text.NumberFormat; i
import java.text.DecimalFormat;
public class BankingService implements IBankingService {
public BankingService(){
}
public String transferFunds(
String fromAccount, String toAccount, double amount, String currency){
String statusMessage = "";
try {
NumberFormat formatter = new DecimalFormat("###,###,###,###.00");
statusMessage = "COMPLETED: " + currency + " " + formatter.format(amount)+
" was successfully transferred from A/C# " + fromAccount + " to A/C# " + toAccount;
} catch (Exception e){
statusMessage = "BankingService.transferFunds(): EXCEPTION: " + e.toString();
}
return statusMessage;
}
}
注:BankingService的transferFunds返回类型是String,如果是复杂类型需要Aegis进行数据绑定。
3、配置web.xml
<web-app>
<display-name>Spring Image Database</display-name>
<description>Spring Image Database sample application</description>
<!--配置spring上下文文件路径-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:applicationContext.xml
</param-value>
</context-param>
<!--配置log4j日志监听器-->
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<!-- 配置spring上下文加载监听器 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<!--配置处理XFire处理web服务请求的servlet-->
<servlet-name>XFireServlet</servlet-name>
<display-name>XFire Servlet</display-name>
<servlet-class>org.codehaus.xfire.spring.XFireSpringServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
注:使用Spring管理XFire bean就应该配置Spring监听器和spring上下文配置文件路径。
4、在Spring上下文配置文件application.xml中配置XFire ServiceBean
<beans>
<!--引入xfire.xml 这个文件包含了定义TransportManager,ServiceRegistry,和一些简单的ServiceFactorys的bean-->
<import resource="classpath:org/codehaus/xfire/spring/xfire.xml"/>
<bean name="BankService" class="org.codehaus.xfire.spring.ServiceBean">
<property name="serviceBean" ref="bank"/>
<property name="serviceClass" value="com.mybank.xfire.example.IBankingService"/>
<property name="inHandlers">
<list>
<ref bean="addressingHandler"/>
</list>
</property>
</bean>
<bean id="addressingHandler" class="org.codehaus.xfire.addressing.AddressingInHandler"/>
<bean id="bank" class="com.mybank.xfire.example.BankingService"/>
</beans>
5、测试,略
- 实现WebServices二:使用XFireSpringServlet与ServiceBean
- 使用Axis2实现WebServices
- 使用Delphi 通过WebServices 要想实现到.Net 或者是Java的WebServices 头验证.
- [WebServices] 之二:基础知识
- WebServices测试之二-----httplib测试webservices
- 基于WebServices简易网络聊天工具的设计与实现
- xife实现webservices配置
- axis实现webservices 实例
- PHP的WebServices实现
- WebServices 实现调用过程
- 4.RPC框架的简单实现(服务发布-ServiceBean实现)
- webservices与AJAX
- webservices 使用 Session 、 Application
- webservices使用的介绍
- 实现了删除上传文件的ServiceBean和对应的Action
- Java6 WebServices (二)客户端
- Axis2 java WebServices开发二
- axis实现webservices分布式通信
- jquery插件之表单验证插件
- teardown_appcontext()
- magento安装好之后后台登陆不进去的解决方法
- Java + jsf 实现 仿百度 全拼 简拼 汉字智能补全
- 从决策树学习谈到贝叶斯分类算法、EM、HMM
- 实现WebServices二:使用XFireSpringServlet与ServiceBean
- Ubuntu GCC 编译C++ 文件出错。main.o: In function `__static_initialization_and_destruction_0':
- CTLChart振动信号图形库编写历程
- git
- Openfire 的安装和配置
- VirtualBox中Ubuntu Ubuntu12.04虚拟机全屏
- Assignment 5: Combinatorial Games
- HDU1632+半平面交
- ckeditor+ckfinder中上传文件名的自定义