`
yupengcc
  • 浏览: 137790 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

xfire 编写webservice例子

阅读更多

来自 :
http://www.blogjava.net/jiujiubuzui/articles/293616.html

利用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)

例子很简单,不过多解释,源码查看附件

分享到:
评论

相关推荐

    spring+xfire( 编写webservice完整配置+案例)

    在本教程中,我们将深入探讨如何使用Spring和XFire编写Web服务的完整配置,并通过实际案例来学习这一过程。 首先,我们需要了解Spring和XFire的基础。Spring框架提供了一个名为Spring-WS的模块,专门用于构建Web...

    XFire_WebService开发例子.zip

    【标题】"XFire_WebService开发例子.zip" 提供了一个关于使用XFire框架构建Web服务的实际示例。这个压缩包包含了一个详细的文档,名为“XFire_WebService开发例子.docx”,该文档很可能是对如何利用XFire框架创建和...

    一个非常简单的Xfire的webservice例子

    在标题中提到的“一个非常简单的Xfire的webservice例子”,我们将会看到如何构建一个基本的Web服务。这个服务被称为“MathService”,暗示它可能提供了一些数学计算的功能。通常,这样的服务会包含一系列方法,如...

    xfire发布webservice服务

    虽然描述为空,但我们可以推测文章可能包含了从安装XFire到编写服务接口,再到部署和测试Web服务的完整步骤。XFire的核心特性包括自动代码生成、强大的注解支持以及对各种协议(如HTTP、JMS)的集成。 【标签】:...

    简单的XFire WebService例子

    在这个“简单的XFire WebService例子”中,我们将深入探讨如何利用XFire来构建和消费Web服务。 【 WeberService概念】 Web服务是一种通过网络(通常是互联网)提供和使用功能的方法,它遵循特定的协议和标准,如...

    使用xfire+spring编写webservice例子,供大家学习与交流

    本示例将详细介绍如何使用XFire和Spring框架来构建一个Web服务。XFire是Apache CXF的一部分,它是一个用于创建、部署和管理Web服务的开源工具,而Spring是一个广泛使用的Java企业级应用开发框架,提供了一个全面的...

    xfire_webservice_example说明

    在阅读《xfire_webservice_example说明.doc》文档时,您会发现它可能涵盖了如何配置和运行这个示例的详细步骤,包括必要的依赖库、XML配置、以及如何编写和运行客户端代码。这份文档是学习xfire和Web服务开发的宝贵...

    spring+xfire实现webservice简单例子

    a) **定义服务接口**:编写一个Java接口,声明Web服务的方法。 b) **实现服务接口**:创建接口的实现类,实现具体逻辑。 c) **配置Spring**:在Spring配置文件中,使用`&lt;bean&gt;`标签定义服务接口的实现,并使用`...

    使用xfire发布的webservice完整实例

    【xfire与Web服务简介】 Xfire是一款开源的Java库,用于构建Web服务客户端和服务端。它基于SOAP协议,提供了一...通过深入研究和实践这个例子,你可以更好地理解Web服务的工作原理以及如何使用Xfire来创建和部署它们。

    WebService(二):XFire实现WebService

    这个例子展示了XFire的灵活性和便捷性,使得开发者可以快速地将Java应用扩展为Web服务,或利用已有的Web服务进行集成。 **与现代框架的比较**: 虽然XFire在当时是一个强大的工具,但随着技术的发展,它已经被更...

    XFire建立Webservice实例

    【XFire建立Webservice实例详解】 XFire是一个早期流行的Java Web Service框架,它允许开发者轻松地创建和消费Web服务。本文将详细介绍如何使用XFire在MyEclipse环境中创建和部署一个简单的Web服务。 一、创建Web...

    Xfire开发webservice与javaweb集成实例

    在提供的"xfire与web项目集成例子"压缩包中,应包含以下内容: - 服务端代码:包括服务接口、实现类以及Xfire的配置文件。 - 客户端代码:包含服务代理的创建和调用服务的方法。 - web.xml配置文件:展示如何将Xfire...

    xfire+spring开发webservice的例子

    总结来说,这个"xfire+spring开发webservice的例子"是一个完整的Java Web服务开发示例,它演示了如何利用Maven管理依赖,借助XFire创建和部署Web服务,以及如何利用Spring进行服务的管理和测试。这对于学习和理解Web...

    xfire生成webservice

    标题 "xfire生成webservice" 涉及到的技术核心是XFire,它是一个Java Web服务框架,用于创建和消费SOAP服务。XFire是Apache CXF的前身,它简化了Web服务的开发过程,允许开发者快速地将业务逻辑暴露为Web服务。 ...

    WebService例子.zip

    通过这个例子,你可以学习如何在myEclipse环境中设置项目、编写WebService服务、生成客户端代码以及进行服务调用。同时,也可以对比JAX-WS与其他WebService框架的区别,加深对WebServices原理的理解。实践是学习的...

    Java调用C#的WebService例子

    本示例介绍如何在Java环境中利用Xfire库来调用C#编写的WebService服务。 首先,理解WebService的核心概念:它是一种基于标准的、平台无关的、用于应用程序之间交互的技术,通过SOAP(Simple Object Access Protocol...

    webservice服务端开发xfire简单实例.rar

    XFire作为WebService开发框架,它提供了一种简洁的API和XML绑定机制,使得开发者可以快速地创建和消费Web Service。XFire的核心是Aegis,这是一个强大的数据绑定框架,它可以将Java对象直接映射到SOAP消息中,反之...

Global site tag (gtag.js) - Google Analytics