加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

WebService开发实例 (Xfire+Spring+Hibernate)

发布时间:2020-12-17 01:22:01 所属栏目:安全 来源:网络整理
导读:利用xfire编写webservice的例子,内容如下 1. xfire + spring 发布webservice 2. 利用 javascript? 调用发布的webservice 使用xfire+spring发布webservice其实很简单,遵循一下几个步骤即可 1. 想要发布成文webservice的类,必须实现接口 2. 3个配置文件(后面详

利用xfire编写webservice的例子,内容如下

1. xfire + spring 发布webservice
2. 利用 javascript? 调用发布的webservice

使用xfire+spring发布webservice其实很简单,遵循一下几个步骤即可

1. 想要发布成文webservice的类,必须实现接口
2. 3个配置文件(后面详细说)

下面针对以上步骤详细说明
关于1中的要求,给个例子就明白了

Itest.java 代码
?
  1. package?test;??
  2. ??
  3. import?org.json.JSONException;??
  4. ??
  5. public?interface?IHello??
  6. {??
  7. ????public?String?hello();??
  8. ????public?String?helloTo(String?name);??
  9. ????public?String?getJsonData(String?pageIndex,String?pageSize);??
  10. }??


????

HelloImpl.java 代码
?
  1. package?test;??
  2. ??
  3. import?java.util.*;??
  4. ??
  5. import?javax.servlet.http.HttpServletRequest;??
  6. import?javax.servlet.http.HttpSession;??
  7. ??
  8. import?org.codehaus.xfire.transport.http.XFireServletController;??
  9. import?org.json.JSONException;??
  10. import?org.json.JSONStringer;??
  11. ??
  12. public?class?HelloImpl?implements?IHello??
  13. {??
  14. ??
  15. ????public?String?hello()??
  16. ????{??
  17. ????return?"hello";??
  18. ????}??
  19. ??
  20. ????public?String?helloTo(String?name)??
  21. ????{??
  22. ????return?"?hello?"?+?name?+?"!";??
  23. ????}??
  24. ??
  25. ????private?void?example()??
  26. ????{??
  27. ????//使用session??
  28. ?????HttpServletRequest?request?=?XFireServletController.getRequest();??
  29. ?????HttpSession?session?=?request.getSession();??
  30. ????}??
  31. ??
  32. ????public?String?getJsonData(String?pageIndex,String?pageSize)???
  33. ????{??
  34. ????String?rtnValue?=?"";??
  35. ??????
  36. ????rtnValue?=?"";??
  37. ????for(int?i=0;i<Integer.parseInt(pageSize);i++)??
  38. ????{??
  39. ????????rtnValue?=?rtnValue?+?"{'lastname':?'last"?+?pageIndex?+?"-"?+?i?+?"',?'firstname':?'first"?+?pageIndex?+?"-"?+?i?+?"'?},";??
  40. ????}??
  41. ????rtnValue?=?rtnValue?+?"{'lastname':?'last',?'firstname':?'last'?}";??
  42. ??????
  43. ????rtnValue?=?"{'context':["??+?rtnValue?+?"],'pager':[{'totalRecord':'100','totalpage':'10','pageIndex':'"?+?pageIndex?+?"','pageSize':'10'}]}";??
  44. ??????
  45. ????return?rtnValue;??
  46. ????}??
  47. }??


就这样写就可以了

关于三个配置文件

web.xml修改如下

xml 代码
?
  1. <?xml?version="1.0"?encoding="UTF-8"?>??
  2. <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">??
  3. ??<!--?配置文件路径?开始?-->??
  4. ????<context-param>??
  5. ????????<param-name>log4jConfigLocation</param-name>??
  6. ????????<param-value>/WEB-INF/classes/log4j.properties</param-value>??
  7. ????</context-param>??
  8. ????<context-param>??
  9. ????????<param-name>contextConfigLocation</param-name>??
  10. ????????<param-value>??
  11. ????????????/WEB-INF/classes/applicationContext*.xml??
  12. ????????????classpath:org/codehaus/xfire/spring/xfire.xml??
  13. ????????</param-value>??
  14. ????</context-param>??
  15. ??????
  16. ????<!--?启动时加载SpringContextServlet?-->??
  17. ????<listener>??
  18. ????????<listener-class>??
  19. ????????????org.springframework.web.context.ContextLoaderListener??
  20. ????????</listener-class>??
  21. ????</listener>??
  22. ????<listener>???
  23. ????????<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>???
  24. ????</listener>???
  25. ??
  26. ????<listener>??
  27. ????????<listener-class>??
  28. ????????????org.springframework.web.util.IntrospectorCleanupListener??
  29. ????????</listener-class>??
  30. ????</listener>??
  31. ??????
  32. ??????<!--?XFire?配置?-->??
  33. ??????<servlet>???
  34. ????????<servlet-name>xfire</servlet-name>???
  35. ????????<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>???
  36. ??????</servlet>???
  37. ????????
  38. ??????<servlet-mapping>??
  39. ????????<servlet-name>xfire</servlet-name>??
  40. ????????<url-pattern>*.ws</url-pattern>??
  41. ??????</servlet-mapping>??
  42. ????????
  43. ??????<welcome-file-list>??
  44. ????????<welcome-file>index.html</welcome-file>??
  45. ??????</welcome-file-list>??
  46. </web-app>??


这里注意 ? classpath:org/codehaus/xfire/spring/xfire.xml? 必须要写进去

xfire-servlet.xml 新建这个文件,并且和web.xml放在同一个文件夹
注意: 名称和位置都不能变(也许可以改,我不知道)

xml 代码
  1. <?xml?version="1.0"?encoding="UTF-8"?>??
  2. <!DOCTYPE?beans?PUBLIC?"-//SPRING//DTD?BEAN//EN"?"http://www.springframework.org/dtd/spring-beans.dtd">??
  3. <beans>???
  4. ????<bean?class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">???
  5. ????????<property?name="urlMap">??
  6. ????????????<map>??
  7. ????????????????<entry?key="/testService.ws">??
  8. ????????????????????<ref?bean="test"/>????
  9. ????????????????</entry>???
  10. ????????????</map>???
  11. ????????</property>??
  12. ??????</bean>???
  13. ????????
  14. ??????<bean?id="test"?parent="webService"?class="org.codehaus.xfire.spring.remoting.XFireExporter">???
  15. ????????<property?name="serviceBean">???
  16. ????????????<ref?bean="testBean"/>???
  17. ????????</property>???
  18. ????????<property?name="serviceClass">???
  19. ????????????<value>test.IHello</value>???
  20. ????????</property>???
  21. ??????</bean>???
  22. ??????????
  23. ??????<!--?webService?base?-->??
  24. ??????<bean?id="webService"?class="org.codehaus.xfire.spring.remoting.XFireExporter"?abstract="true">??
  25. ????????<property?name="serviceFactory">??
  26. ????????????<ref?bean="xfire.serviceFactory"?/>??
  27. ????????</property>??
  28. ????????<property?name="xfire">??
  29. ????????????<ref?bean="xfire"?/>??
  30. ????????</property>??
  31. ?????</bean>??
  32. </beans>??


spring 的配置文件 applicationContext-webService.xml

xml 代码
  1. <?xml?version="1.0"?encoding="UTF-8"?>??
  2. <!DOCTYPE?beans?PUBLIC?"-//SPRING//DTD?BEAN//EN"?"http://www.springframework.org/dtd/spring-beans.dtd">????
  3. <beans>??
  4. ????<bean?id="testBean"?class="test.HelloImpl"></bean>??
  5. </beans>??


查看wsdl??? http://localhost:8080/mootools/testService.ws?wsdl

运行 进入 index.html 页面,点击 即可执行调用,正常显示表示发布成功,调用失败会返回error(运行前请修改index.html文件的源码,将url修改成真正的url)

例子很简单,不过多解释,源码查看附件
http://www.javaeye.com/topic/99397

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读