Eclipse下搭建Hibernate,并将其发布成WebService

此篇文章是我在搭建Hibernate WebService時學到的一些知識。

 

1> 新建名為HibernateWebService的Web Project

2> 選中此項目點擊右鍵--MyEclipse->Add Hibernate Capabilities...彈出Hibernate Support for MyEclipse對話框

3> 選中添加到工程的包Core和Advanced,點擊next在src目錄下新建hibernate.cfg.xml配置文件

4> 選中use jdbc Driver 并填寫數據庫的鏈接信息

      在此我連接的是MySQL數據庫,URL:jdbc.mysql://localhost:3306/database

                                                  Driver class:com.mysql.jdbc.Driver

                                                   username:root

                                                   password:******

5> 選中創建Session Factory class,finish!

 

如果要生成struts1的配置文件struts~configure.xml,只需選中項目點擊右鍵--MyEclipse--> Add Struts Capabilities...

在/WEB-INF下就會生成你所需要的xml文件。

 

接下來講解的是如何生出hibernate的映射文件,*.hbm.xml

首先在Eclipse里連接數據庫,找到你要映射的table,如users,對users表點擊右鍵,選擇Hibernate Reverse Engineering,選擇目錄src和包com.scylla.users,選擇Hibernate mapping file 和 Java Data Object 點擊finish!

在com.scylla.users包下生成了兩個java文件和一個xml文件,分別是 Users.java  和 AbstractUsers.java和Users.hbm.xml

在Project下還生成了另一個xml文件,為hibernate.reveng.xml

 

(注:AbstructUsers.java可以去掉,同時修改一下Users.java文件,把它修改成一般的entity類即可。

       hibernate.reveng.xml 也可去掉)

 

Test.java

 

 

 

UserHandler.java

 

 

 

 User.java

 

 

 

Users.hbm.xml

 

 

 

Hibernate.cfg.xml

 

 

 

 確定Hibernate環境搭建好之後就可以開始把它部署成webservice了。

 

第一步:在C:盤目錄下建立如下目錄結構

C:/ws/com/scylla/user    將HibernateSessionFactory.class和UserHandler.class放在此目錄下

 

C:/META-INF/                  新建webservice.xml文件放在此目錄下,文件內容如下:

 

 

用如下CMD命令打包

cd C:/ws
jar -cvf ws.aar *.*

將打包好的ws.aar文件放在../axis2/WEB-INF/services中,然後將Hibernate.cfg.xml文件放在../axis2/WEB-INF/classes目錄中

同時在此目錄下新建com/scylla/user目錄,并將Users.class和Users.hbm.xml文件放在此新建目錄中。

到此Hibernate WebService已經部署好了。(本人在實際操作中遇到了如下異常:org.hibernate.HibernateException: /hibernate.cfg.xml not found ,和Users.hbm.xml not found。原因就是hibernate.cfg.xml和Users.hbm.xml文件放的位置不對 

 

下面的工作就是調用此WebService

 

第一種調用方法,編寫如下代碼:

 

 

   

(注意:此行代碼是聲名返回值的類型為Users對象  Class[] classes = new Class[] {com.scylla.user.Users.class};)

 

第二種調用方法:

 

首先使用如下CMD命令

cd C:/Program Files/apache-tomcat-5.5.28/webapps/axis2-1.4.1/bin
wsdl2java -uri http://localhost:8080/axis2/services/HibernateWebService?wsdl -p client -s -o stub

 

在axis2-1.4.1/bin目錄下生成了stub/src/client目錄,將此目錄下的HibernateWebServiceStub.java文件複製到你測試調用工程的client包下。然後新建如下代碼進行調用:

 

調用后輸出數據庫中的值,user id is:1  user name is:johnny。

 

注意:WebService不支持集合類型的數據傳遞,像ArrayList Map Set 等等,否則在客戶端調用的時候出現類型轉換異常!

最為鬱悶的是出現:Mapping qname not fond for the package:。。。(回憶中)

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山月神话

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值