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) |
插入一条数据待测试用。
二、实例代码
连接数据库
打开MyEclipse Database Explorer 新建一个数据连接:
![[]转]Xfire Spring Hibernate 发布WebService_第1张图片](http1://img.it610.com/image/product/cca31ad7e7eb49798546a1d6bb53478f.jpg)
创建项目
1、打开MyEclipse 新建一个Web Service Project项目输入项目名称XfireWebService。
![[]转]Xfire Spring Hibernate 发布WebService_第2张图片](http1://img.it610.com/image/product/4bba67496cb1438ba38183e0b271ab12.jpg)
2、下一步默认
![[]转]Xfire Spring Hibernate 发布WebService_第3张图片](http1://img.it610.com/image/product/6b7e05146ab148098ccf8e27defcf028.jpg)
3、下一步,勾选XFire 1.2 HTTP Client Libraries。
![[]转]Xfire Spring Hibernate 发布WebService_第4张图片](http1://img.it610.com/image/product/84b853c47670441b89f8be3a96c931db.jpg)
4、点击View and edit libraries 去掉spring-1.2.6.jar 这个包(不去掉会和后面添加的Spring冲突)
5、右键添加MyEclipse的Spring Capabilities,方便起见选上所有的包,选择Copy checked…,下一步默认完成。
![[]转]Xfire Spring Hibernate 发布WebService_第5张图片](http1://img.it610.com/image/product/a7cabb9380434859a8315fc0de64a7ae.jpg)
6、再添加Hibernate Capabilities,同样选上所有包。
![[]转]Xfire Spring Hibernate 发布WebService_第6张图片](http1://img.it610.com/image/product/ea72e7897711406291ca6676e5ede844.jpg)
![[]转]Xfire Spring Hibernate 发布WebService_第7张图片](http1://img.it610.com/image/product/e490d1215ca141a7a1196e3f1a671c91.jpg)
![[]转]Xfire Spring Hibernate 发布WebService_第8张图片](http1://img.it610.com/image/product/3df8d7b495c34a2e8c1d93cefaf03c3e.jpg)
![[]转]Xfire Spring Hibernate 发布WebService_第9张图片](http1://img.it610.com/image/product/071b2ce1637744a7af4d56209a1415c5.jpg)
下一步去掉复选框完成。
![[]转]Xfire Spring Hibernate 发布WebService_第10张图片](http1://img.it610.com/image/product/f814b3f6702742aa9f2bb9b3e8fc384d.jpg)
点击Replace替换所有包
![[]转]Xfire Spring Hibernate 发布WebService_第11张图片](http1://img.it610.com/image/product/affe50fc26ce4f88972e397792f4ec8f.jpg)
7、然后配置web.xml
contextConfigLocation /WEB-INF/classes/applicationContext.xml classpath:org/codehaus/xfire/spring/xfire.xml org.springframework.web.context.ContextLoaderListener xfire org.springframework.web.servlet.DispatcherServlet xfire /services/*
8、建立一个com.easylife包,再新建一个webservice
![[]转]Xfire Spring Hibernate 发布WebService_第12张图片](http1://img.it610.com/image/product/0c65b643481444a2866a0587aff4ccd7.jpg)
![[]转]Xfire Spring Hibernate 发布WebService_第13张图片](http1://img.it610.com/image/product/01e4e8c92ad94078b89cf49a17f4d188.jpg)
![[]转]Xfire Spring Hibernate 发布WebService_第14张图片](http1://img.it610.com/image/product/d7be2c17cd6040faa4f017f04858569c.jpg)
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
![[]转]Xfire Spring Hibernate 发布WebService_第15张图片](http1://img.it610.com/image/product/ac8a7b17da6f49c1956f81fcb2eeb78b.jpg)
![[]转]Xfire Spring Hibernate 发布WebService_第16张图片](http1://img.it610.com/image/product/5be8c7fbe6cc4a118bd23cb78e155b86.jpg)
11、在applicationContext.xml 末尾添加一个bean
12、在WEB-INF下建立xfire-servlet.xml
[img]
13、部署项目
14、测试服务
http://localhost:8080/XfireWebService/services/Login?wsdl
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
完毕