配置Xfire+Spring+Ibatis心得
最近开始做webservice针对Spring+Struts+Ibatis+Ajax这样一套底层架构项目的集成,并以Flex为客户进行测试,中间碰到一些问题也得到一些知识想记录一下。
◆现存项目核心架构: Ajax+Struts+Spring+Ibatis
◆集成框架:websevice 中的Xfire1.2.6
◆前端客户端:Flex
1.首先在Xfire官网下载Xfire相关jar包,将xfire-all-1.2.6.jar以及xfire-distribution-1.2.6.zip下的lib文件夹所有在项目中没有的包均导入到项目中。(本人曾经因为怕全部导入会导致有包不会被用到,所以想通过启动项目根据它所报的错来逐个导入,接连重启服务十来次,真的是很浪费时间,最后将lib下的所有包都导入才不会报找不到Class那个错)
2.大多数资料都有介绍过Xfire与Spring的结合,无外两种,一种是使用导出器导出Web Service,另一种是采用JSR 181进行注释式导出。很显然用导出器结构很清楚,但对于每一个需要导出的业务都要为其配置一个导出器,而JSR 181试采用注释的方式,配置起来更简单,可想而知,我会首先想到用JSR 181方式进行本项目的webservice集成测试。
3.现存的项目Struts和Spring及Ibatis联系的非常密切,从底层的Dao,业务层的Service,到控制层的Action均交给Srping来管理,项目有三类配置文件:web.xml(这里不做详述)、spring-config.xml 主要用来放Dao层,业务层及其事务的配置;struts-config.xml 主要用来声明所有用到的Action类;action-severlet.xml 主要用来连接 Action及业务类。起初根本不知道切和点,甚至会想到webservice向外导出时定义的窄接口会是在action这一层,其实这怎么可能呢,既然现在由webservice向外界提供访问接口,那么根本再不需要action,不论它以前与spring有多大关联,这里都可以将其全部Cut掉,可以说以前的action相当于一个websevice应用,而现在要将其改成更标准的Xfire。知道这一点后就简单了。
4.很显然Spring 中所配置的Dao层和业务层均可不变,所谓的向外的窄接口就是先前的业务层接口了,那么采用JSR 181就会这样:
@WebService(serviceName = "MsgunitService", //①指定导出的Web Service名称
endpointInterface = "org.sh.spiss.eme.msgunit.MsgunitService") //②对应的窄接口
public class MsgunitServiceImpl implements MsgunitService{
private MsgunitDao msgunitDaoImpl;
public MsgunitDao getMsgunitDaoImpl() {
return msgunitDaoImpl;
}
public void setMsgunitDaoImpl(MsgunitDao msgunitDaoImpl) {
this.msgunitDaoImpl = msgunitDaoImpl;
}
public int deleteMsgunit(Msgunit msgunit) {
return getMsgunitDaoImpl().deleteMsgunit(msgunit);
}
public Msgunit getMsgunit(Msgunit msgunit) {
return getMsgunitDaoImpl().getMsgunit(msgunit);
}
public List getMsgunitList(Msgunit msgunit) {
return getMsgunitDaoImpl().getMsgunitList(msgunit);
}
public int getTotalMsgunit(Msgunit msgunit) {
return getMsgunitDaoImpl().getTotalMsgunit(msgunit);
}
public int insertMsgunit(Msgunit msgunit) {
return getMsgunitDaoImpl().insertMsgunit(msgunit);
}
public int updateMsgunit(Msgunit msgunit) {
return getMsgunitDaoImpl().updateMsgunit(msgunit);
}
}
对应的接口也需要注释:
@WebService(targetNamespace = "http://www.xxxx.com") //①指定SOAP的命名空间
public interface MsgunitService {
public int deleteMsgunit(Msgunit msgunit);
public Msgunit getMsgunit(Msgunit msgunit);
public List getMsgunitList(Msgunit msgunit);
public int getTotalMsgunit(Msgunit msgunit);
public int insertMsgunit(Msgunit msgunit);
public int updateMsgunit(Msgunit msgunit);
}
接下来就需要进行相关配置文件的编写了;
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<import resource="classpath:org/codehaus/xfire/spring/xfire.xml" />
<bean id="webAnnotations" class="org.codehaus.xfire.annotations.jsr181.Jsr181WebAnnotations" />
①该Bean获取Spring容器中所有标注@WebService的Bean
<bean id="jsr181HandlerMapping" class="org.codehaus.xfire.spring.remoting.Jsr181HandlerMapping">
<property name="xfire" ref="xfire" />
<property name="webAnnotations" ref="webAnnotations" />
</bean>
②对标注@WebService的Bean进行处理,完成导出工作
分享到:
相关推荐
在提供的压缩包文件"xfire+spring"中,可能包含了相关的示例代码、配置文件或者教程文档,帮助开发者理解并实践这一整合过程。通过学习这些资源,你可以深入理解如何将这两个强大的工具结合起来,构建出既高效又安全...
在提供的文档《xfire+spring2_5开发webservice接口的两种方式.mht》中,详细讲解了这两种方法的实现步骤、示例代码和注意事项。读者可以通过阅读该文档,了解如何在Spring 2.5版本下结合XFire创建Web服务。 另一份...
标题中的“xfire+spring+webservice+client”是一个关于集成XFire、Spring框架和Web服务客户端的专题,这涉及到Java开发中的一项重要技术——Web服务的消费与提供。在这个主题下,我们将深入探讨以下几个核心知识点...
描述中提到的“本来想把xfire+spring例子也一起传上来,太大不让传”,意味着这个压缩包可能包含了示例代码或者项目实例,用于展示如何在实际应用中整合XFire和Spring。由于文件大小限制未能一同上传,我们只能从...
【XFire+Spring Web Service】是一个结合了XFire和Spring框架的解决方案,用于构建高效、易用的Web服务。XFire作为一个现代化的Web服务框架,它与Axis2齐名,但因其简洁的API和对Web服务标准的支持,如JSR181、WSDL...
本案例中的"xfire+spring+hibernate"是一种早期的整合方式,它将Web服务(通过XFire实现)、Spring框架的依赖注入与管理以及Hibernate的持久层处理结合在一起。以下是对这种整合方式的详细解释。 1. **XFire**:...
总的来说,XFire+Spring的组合为Java开发者提供了一个强大且灵活的Web服务解决方案,结合MooTools等前端技术,可以构建出高性能、易维护的分布式系统。在实际开发中,理解并熟练掌握这些工具的使用,将有助于提升...
【标题】:“Xfire+Spring+Hibernate WebService” 在IT领域,Web服务是一种软件系统,设计用于通过网络(主要是互联网)进行通信。本项目“Xfire+Spring+Hibernate WebService”是一个采用特定技术栈构建的Web服务...
标题 "xfire+spring webservice" 指的是在Java开发环境中,利用XFire和Spring框架来构建Web服务。这是一个常见的技术组合,用于快速、高效地创建和消费Web服务。让我们深入了解一下这两个组件以及它们如何协同工作。...
2. 配置Spring:定义Spring配置文件,声明XFire的ServiceBean和EndpointBean,以及相关的依赖注入。 3. 创建Web服务:使用XFire提供的API或Spring-WS的注解来定义Web服务接口和实现。 4. 暴露服务:通过Spring的...
标题中的“xfire+spring+maven构建webservice服务器和客户端”揭示了本教程将围绕三个主要技术进行讨论:XFire、Spring和Maven。这三者都是Java开发中不可或缺的工具,尤其在构建Web服务方面。 XFire是早期的一个...
在Spring配置文件中,我们可以定义一个`<bean>`,指定其类型为`org.codehaus.xfire.spring.XFireServiceFactoryBean`,并设置相应的属性,如服务接口、实现类等。 4. **Web服务发布**:整合后,Web服务可以通过...
【标题】"xfire+spring+webservice例子"是一个典型的示例项目,它演示了如何在Java环境中结合XFire和Spring框架来创建和消费Web服务。这个项目旨在帮助开发者理解和实践基于Spring的Web服务实现,同时也展示了XFire...
XFire是一个高性能、易于使用的Java Web服务框架,而Spring则是广泛采用的轻量级应用框架,它提供了丰富的功能来支持各种应用程序的开发,包括Web服务。本教程将详细介绍如何结合XFire和Spring来构建Web服务,并提供...
在"xFire+Spring WebService"的集成中,你可以使用Spring来配置和管理xFire,这样就可以利用Spring的强大功能,如自动装配、事务管理和安全性,同时利用xFire的Web服务处理能力。下面是一些关键步骤: 1. **配置...
标题“使用xfire+spring构建webservice”指出的是一个关于如何利用XFire和Spring框架创建Web服务的教程。XFire是早先的一个用于构建Web服务的开源Java库,它简化了SOAP(简单对象访问协议)服务的开发。而Spring框架...
至此,一个简单的XFire+Spring Web Service就已经构建完成。客户端可以通过调用WSDL中定义的端点地址来访问这个服务,进行“Hello, World!”的交互。 总结,使用XFire和Spring构建Web Service,可以利用Spring的IoC...