xfire + spring +hibernate 实现webservice 偷懒版本
来源:互联网 发布:什么软件可以tvb 编辑:程序博客网 时间:2024/04/28 17:28
xfire + spring +hibernate 实现webservice 偷懒版本
今天将之前的一个工作情况进行了整理,是xfire + spring+ hibernate 实现webservice 的wsdl ,客户端生成代码并测试。
1. 附加数据库(我用的sql server 2005),主要是添加 hisdb.mdf ,成功后,新建查询,use hisdb ,然后 select 表, 测试获得数据,说明连接成功。另外附加一张 sql 启动需要开启服务的图:
前面都是SQL 看后面的字段,需要开启的服务类别有:Server , Server Analysis Services , Server Integration services , Server VSS Writer , 如果服务列表顺序一样的话,应该就是第一个,然后隔两行(1个),再隔两行(2个)。
2. 开启 MyEclipse, 配置tomcat 和 数据源--- db_server
3. 建立项目 new webservice project (选择xfire为工具)
4. 项目框架建包,sh.(biz、dao、impl、test) ,ws.(webservice、client)
5. 导入webservices 接口和实现类 ------- new web service ,注意选择 xfire 和 create...bottom-up-scenario,并勾上,下一步就是定义接口的名字,然后完成。
以上就建立了一个最简单的webservice ,如同网上很多 holloword 例子
6. 发布项目,启动tomcat ,在浏览器中,可以访问wsdl,并在 myeclipse 的Web Services Explorer 视图下面测试,通过---------- 有个系统自动生成的接口。
7. 导入 spring + hibernate 框架。 spring 我用的是1.2,hibernate 3.2。 一切都由spring来管理。并通过hibernate 的映射生成 javabean 和 BeanDAO 等
8. 在sh 中 写接口和实现类,配置impl (在ApplicationContext.xml 中) ,并在test 中测试,
ApplicationContext ctx = new FileSystemXmlApplicationContext("classpath:applicationContext.xml");
All_impl dao = (All_impl) ctx.getBean("all_impl");
是必须的,不是在struts 调用,所以没有配置,在 java 控制台调用 hibernatedao 就需要这里实例化一次,其实就是让spring去实现。
9. xfire 和sh 目前还没有联系,要调用数据库,就必须结合起来-------- 可以按照网上那些方法去配置,但是比较繁琐,自己偷懒的方法见 10。
10. 在webservice 的接口中,直接copy sh.biz 中的各个方法(之前是按照websevice需求写的),然后在实现类中,添加上
Test 中那两句重要的话:
ApplicationContext ctx = new FileSystemXmlApplicationContext("classpath:applicationContext.xml");
All_impl dao = (All_impl) ctx.getBean("all_impl");
这样就间接的将 xfire 和 sh 结合起来了,而且不要被 new 所吓倒了,不会重复的生成实例的。
这样接口的实现类中直接用 this.dao.方法名 来实现,每个都一句话。
11. 就这样,不用去配置xfire+spring了。...........
12. 配置webservice 中的复杂接口(返回类型,参数类型)-------------- 在接口同目录下,建立 Ixsh.aegis.xml,对每个接口都进行配置---------其中的具体怎么配置见我的csdn 上面的那篇文章。 ----------其实这个很重要。
13. 慢慢调试,然后可以查看到:http://localhost:8080/Xfire_SH/services/ 点击进去就是wsdl 了。
14. 在Web Services Explorer 中测试,对每个接口都可以实现,在 body 中看到返回的值------- 至少已经成功了一大半。补充一点,由于hiabernate 的延迟加载,有时候在关联另外一张表的时候会报错,可以通过配置spring ,或者web.xml 但是我配置了好像没什么反应,就直接用最笨的方法了,直接在 bean.hbm.xml 中,将 <many-to one><set> 中添加 fetch="join" lazy="false" 除非大型数据不停的关联调用,这样不会影响性能,至少微小的影响是不构成影响的。
15. 建立另外一个webservice 工程,根据wsdl 反向生成实现客户端 ---------- 在Myeclipse 下,这个很容易。 需要你copy wsdl 的url ,其他的一些配置不详细说。
在webclient 中,调用方法 service.(可以点开方法名),打印,如果和 视图测试中一样,说明webservice 发布成功。至于客户端怎么去调用,怎么去解析,我就不说了,网上一大堆文章。
16. 设置访问wsdl 的访问权限,最简单的就是在 tomcat中 中设置用户名和密码,网上可搜到相关代码。 这样别人即使知道url,没有密码也是连接不成功的。
以上是个人的愚见,亲身做过项目,是个偷懒的做法,能实现功能。
2010年7月24日 星期六
QQ : 932165304
- xfire + spring +hibernate 实现webservice 偷懒版本
- WebService开发实例 (Xfire+Spring+Hibernate)
- WebService开发实例 (Xfire+Spring+Hibernate)
- WebService开发实例 (Xfire+Spring+Hibernate)
- WebService开发实例 (Xfire+Spring+Hibernate)
- WebService开发实例 (Xfire+Spring+Hibernate)
- 通过spring方式实现xfire webservice
- spring + hibernate 实现 webService
- XFire + Spring 编写webservice
- xfire+spring webservice 配置
- xfire+spring整合webservice
- spring+xfire发布webservice
- spring xfire webservice
- spring+xfire开发webservice
- xfire实现webservice
- Xfire实现webservice实例
- 用XFire 实现webservice
- 用xfire实现webservice
- delphi(stringgrid导出excel)
- .net 中如何使用存储过程output和return值
- 对话框皮肤
- windows下编译与安装OpenSSL
- PHP100视频解压密码以及目录
- xfire + spring +hibernate 实现webservice 偷懒版本
- DataGridView控件绑定数据
- JSF 基础知识
- FLASHFXP3.6注册码
- 什么是进程上下文,什么是中断上下文
- 《ASCE1885的网络编程》---Winsock APIの网络信息获取函数
- 人员管理
- System.Data.DataTable的奇异之处
- 如何使PC上运行的程序不能退出,并且用户只能使用当前正在运行的程序。不能使用PC上的其他程序