Xfire Spring Hibernate 发布WebService
Xfire Spring 1.2 Hibernate 3 发布WebService
一、准备工作
1、下载安装Eclipse Version: 3.3.1.1 和MyEclipse6.0.1
2、下载安装MySQL Server 5.1
3、下载MySQL驱动 mysql-connector-java-5.0.8-bin.jar
4、 使用MySQL管理工具创建数据库easyLife和一张user表。我使用的是EMS SQL Manager 2007 for MySQL。
表结构如下:
id
integer
username
Varchar(20)
userpwd
Varchar(20)
插入一条数据待测试用。
5、安装Tomcat5.5
二、实例代码
连接数据库
打开MyEclipse Database Explorer 新建一个数据连接如图:
clip_image002
创建项目
1、 打开MyEclipse 新建一个Web Service Project项目输入项目名称XfireWebService。
clip_image004
2、 下一步默认
clip_image006
3、 下一步,勾选XFire 1.2 HTTP Client Libraries。
clip_image008
4、 点击View and edit libraries 去掉spring-1.2.6.jar 这个包(不去掉会和后面添加的Spring冲突)
5、 右键添加MyEclipse的Spring Capabilities,方便起见选上所有的包,选择Copy checked…,下一步默认完成。
clip_image010
6、 再添加Hibernate Capabilities,同样选上所有包。
clip_image012
下一步
clip_image014
下一步
clip_image016
下一步
clip_image018
下一步去掉复选框完成。
clip_image020
点击Replace替换所有包
clip_image022
7、 然后配置web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/classes/applicationContext.xml
classpath:org/codehaus/xfire/spring/xfire.xml
</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<servlet>
<servlet-name>xfire</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>xfire</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
</web-app>
8、 建立一个com.easylife包,再新建一个webservice
clip_image024
下一步
clip_image026
下一步填入如图内容,完成。
clip_image028
9、 修改ILoginDAO
package com.easylife;
//Generated by MyEclipse
public interface ILoginDAO {
public boolean login(String username, String userpwd);
}
修改LoginDAOImpl
package com.easylife;
import java.util.List;
import org.hibernate.Query;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
//Generated by MyEclipse
public class LoginDAOImpl extends HibernateDaoSupport implements ILoginDAO {
@SuppressWarnings("unchecked")
public boolean login(String username, String userpwd) {
boolean flag = false;
String hql = "FROM User AS u WHERE u.username=? AND u.userpwd=?";
Query q = super.getSession().createQuery(hql);
q.setString(0, username);
q.setString(1, userpwd);
List all = q.list();
if (all.size() > 0) {
flag = true;
//SysUsers t = (SysUsers) all.get(0);
}
return flag;
}
}
10、 打开MyEclipse Data Explorer视图找到user表使用Hibernate Reverse Engineering
clip_image030
下一步选择
clip_image032
下一步默认完成
11、 在applicationContext.xml 末尾添加一个bean
<bean id="LoginDAOImpl" class="com.easylife.LoginDAOImpl">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
12、 在WEB-INF下建立xfire-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "
http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="urlMap">
<map>
<entry key="/Login"><!--此为服务名-->
<ref bean="login" />
</entry>
</map>
</property>
</bean>
<bean id="login"
class="org.codehaus.xfire.spring.remoting.XFireExporter">
<property name="serviceFactory">
<ref bean="xfire.serviceFactory" />
</property>
<property name="xfire">
<ref bean="xfire" />
</property>
<property name="serviceBean">
<ref bean="LoginDAOImpl" /><!--在 applicationContext.xml 中装配的类-->
</property>
<property name="serviceClass">
<value>com.easylife.ILoginDAO</value><!-- 接口-->
</property>
</bean>
</beans>
13、 部署项目
clip_image034
14、 测试服务
http://localhost:8080/XfireWebService/services/Login?wsdl
返回
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://easylife.com" xmlns:tns="http://easylife.com" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenc11="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soapenc12="http://www.w3.org/2003/05/soap-encoding" xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://easylife.com">
<xsd:element name="login">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" name="in0" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="1" name="in1" nillable="true" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="loginResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" name="out" type="xsd:boolean"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
<wsdl:message name="loginResponse">
<wsdl:part name="parameters" element="tns:loginResponse">
</wsdl:part>
</wsdl:message>
<wsdl:message name="loginRequest">
<wsdl:part name="parameters" element="tns:login">
</wsdl:part>
</wsdl:message>
<wsdl:portType name="ILoginDAOPortType">
<wsdl:operation name="login">
<wsdl:input name="loginRequest" message="tns:loginRequest">
</wsdl:input>
<wsdl:output name="loginResponse" message="tns:loginResponse">
</wsdl:output>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="ILoginDAOHttpBinding" type="tns:ILoginDAOPortType">
<wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="login">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="loginRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="loginResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="ILoginDAO">
<wsdl:port name="ILoginDAOHttpPort" binding="tns:ILoginDAOHttpBinding">
<wsdlsoap:address location="http://localhost:8080/XfireWebService/services/Login"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
15、 JAVA调用WebService
package com.easylife;
import java.net.MalformedURLException;
import java.util.Iterator;
import java.util.List;
import org.codehaus.xfire.XFireFactory;
import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;
import com.easylife.User;
import com.easylife.ILoginDAO;
public class UserServiceWSTest {
public static void main(String[] args) throws Exception {
// 创建服务实例
Service srvcModel = new ObjectServiceFactory()
.create(ILoginDAO.class);
XFireProxyFactory factory = // 创建代理工厂实例
new XFireProxyFactory(XFireFactory.newInstance().getXFire());
String helloWorldURL = "http://localhost:8080/XfireWebService/services/Login";
ILoginDAO srvc = null;
try { // 获取指定位置的web服务对象
srvc = (ILoginDAO) factory.create(srvcModel, helloWorldURL);
} catch (MalformedURLException e) {
e.printStackTrace();
}
// 调用只返回String的方法.在接口名.aegis.xml中不用设置方法名
boolean result = srvc.login("admin","123");
System.out.println(result);
}
}
Run As Java Application返回True
完毕
转自:http://moluobuzai.spaces.live.com/blog/cns!7F741380D64704BA!276.trak
分享到:
相关推荐
Xfire Spring Hibernate 发布WebService(源码) Xfire1.2 Spring 2.0 Hibernate 3 发布WebService 一、准备工作 1、下载安装MyEclipse6.5 2、下载安装MySQL Server 5.1 3、下载MySQL驱动 mysql-connector-java...
Spring+Hibernate+Xfire+发布WebService教程文档
【标题】:“Xfire+Spring+Hibernate WebService” 在IT领域,Web服务是一种软件系统,设计用于通过网络(主要是互联网)进行通信。本项目“Xfire+Spring+Hibernate WebService”是一个采用特定技术栈构建的Web服务...
在“XFire+Spring构建WebService整合”中,Spring可以被用来管理XFire的生命周期,以及配置Web服务的bean。 3. **Hibernate**:Hibernate是Java领域最知名的ORM框架之一,它简化了与数据库的交互,使得开发者可以...
标题 "spring webService hibernate结合xfire" 描述了一个整合技术的应用,即Spring、Web服务(WebService)和Hibernate框架与Xfire的结合。在这个项目中,开发者可能想要创建一个基于Java的Web服务,该服务能够利用...
本文档主要介绍如何在Spring框架下配置并使用Xfire来实现Web服务(Webservice),同时整合Hibernate进行数据持久化操作。通过这一过程,读者可以更好地理解如何搭建一个完整的基于Spring、Xfire与Hibernate的Web服务...
【xfire集成spring+hibernate实现webservice样例工程】是一个典型的Java开发中的整合案例,它演示了如何将三个重要的技术框架——XFire、Spring和Hibernate有效地结合在一起,以构建一个提供Web服务的工程。...
网上资料大多是只有spring+xfire 含有Hibernate的少 3.配置时候还遇到spring实现 客户端调用服务器端时候 注入失败 4.在服务器端向客户端做映射的时候失败 5.在服务器端获取非基本类转化问题
本实例"Spring+Hibernate+Struts+XFire的WebService"提供了一个全面的框架整合,用于创建功能丰富的Web服务。以下将详细解析这个实例所涉及的技术点: 1. **Spring框架**:Spring是一个开源的Java平台,它为开发...
以下是关于"Xfire配置Web Service+Spring+Hibernate详细配置流程"的知识点详解: 1. **Spring框架**: Spring是Java企业级应用开发的首选框架,提供依赖注入(DI)和面向切面编程(AOP)。在Web服务场景中,Spring...
标题中的"Spring+Hibernate+Xfire"是一个集成开发的框架组合,主要应用于Java后端开发。这个组合将Spring的依赖注入、事务管理等优势,与Hibernate的持久化能力,以及Xfire的Web服务支持相结合,形成一个强大的企业...
总的来说,这个实例展示了如何在Java环境中使用XFire来创建和消费WebService,同时结合Hibernate进行数据持久化,利用Spring框架进行服务管理和依赖管理,形成一个完整的分布式系统解决方案。这对于我们理解和掌握...
本案例中的"xfire+spring+hibernate"是一种早期的整合方式,它将Web服务(通过XFire实现)、Spring框架的依赖注入与管理以及Hibernate的持久层处理结合在一起。以下是对这种整合方式的详细解释。 1. **XFire**:...
标题中的关键词包括“Spring”、“RMI”、“thread”、“Hibernate”和“Webservice”,这些是Java编程中的核心概念,尤其在企业级应用开发中尤为重要。接下来,我们将详细探讨这些技术。 1. **Spring**:Spring 是...
通过这样的集成,我们可以利用XFire轻松地发布和调用Web服务,同时Spring负责整体的依赖管理和事务控制,而JPA则帮助我们将业务逻辑与数据库操作分离,实现了高效的ORM处理。这种架构提供了灵活性、可扩展性和易于...
【xfire webservice 实例】是一个综合性的项目,它整合了xfire、Spring和Hibernate三大技术,用于构建高效、灵活的Web服务。Xfire是一款强大的Java Web服务框架,它简化了创建、部署和消费Web服务的过程。Spring是...
这些库包括 Xfire 相关的核心库、JAXB 库、Spring 库以及 Hibernate 库。确保引入以下依赖: - Commons-httpClient-3.0.jar - Xfire1.2 核心库 - Xfire1.2 JAXB 库 2. **配置文件设置** 在 `WEB-INF` 目录下...
### Xfire配置Web Service+Spring+Hibernate详细流程 在IT领域,尤其是企业级应用开发中,集成Web Service、Spring框架以及Hibernate技术是非常常见的需求。本文将深入解析如何使用Xfire来配置并集成这三个核心技术...
本文档主要介绍了如何在现有的Spring2.5+Hibernate3.2基础上添加XFire来实现WebService服务的配置过程。通过逐步指导的方式,帮助读者了解整个配置流程,并提供相关的截图以辅助理解。 #### 环境准备 在开始之前,...