`
simpledev
  • 浏览: 196197 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

spring+xfire实现webservice简单例子

阅读更多

spring xfire是一种比较简单的webservcie方式,下面的步骤描述一个例子。
基本流程是:
1.加载spring,xfire jar文件
2.web.xml加载applicationContext.xml,xfire
3.创建java服务工程,创建远程对外服务接口,实现类,model对象
4.在applicationContext.xml中部署服务
5.测试webservice

 

1.创建一个web工程,加入Maven,pom.xml代码见:

<dependencies>
  <dependency>
      <groupId>org.codehaus.xfire</groupId>
      <artifactId>xfire-aegis</artifactId>
      <version>1.2.4</version>
    </dependency>
    <dependency>
      <groupId>org.codehaus.xfire</groupId>
      <artifactId>xfire-spring</artifactId>
      <version>1.2.4</version>
    </dependency>
    <dependency>
      <groupId>xalan</groupId>
      <artifactId>xalan</artifactId>
      <version>2.7.0</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>2.0</version>
    </dependency>
    </dependencies>

 
如果没有使用Maven,将如下jar文件加载到classpath下面:
activation-1.1.jar
aopalliance-1.0.jar
avalon-framework-4.1.3.jar
commons-attributes-api-2.1.jar
commons-beanutils-1.7.0.jar
commons-codec-1.3.jar
commons-httpclient-3.0.jar
commons-logging-1.1.jar
jaxen-1.1-beta-9.jar
jdom-1.0.jar
junit-3.8.1.jar
log4j-1.2.12.jar
logkit-1.0.1.jar
mail-1.4.jar
qdox-1.5.jar
servlet-api-2.3.jar
spring-1.2.6.jar
spring-aop-2.0.jar
spring-beans-2.0.jar
spring-context-2.0.jar
spring-core-2.0.jar
spring-web-2.0.jar
stax-api-1.0.1.jar
stax-utils-snapshot-20040917.jar
wsdl4j-1.6.1.jar
wstx-asl-3.2.0.jar
xalan-2.7.0.jar
xbean-2.2.0.jar
xbean-spring-2.7.jar
xercesImpl-2.6.2.jar
xfire-aegis-1.2.4.jar
xfire-annotations-1.2.4.jar
xfire-core-1.2.4.jar
xfire-spring-1.2.4.jar
xfire-xmlbeans-1.2.4.jar
xml-apis-1.0.b2.jar
xmlParserAPIs-2.6.2.jar
XmlSchema-1.1.jar

 

2.编辑web.xml

<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>classpath:applicationContext*.xml</param-value>
 </context-param>
 <listener>
         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
 <servlet>
  <servlet-name>xfire</servlet-name>
  <servlet-class>
   org.codehaus.xfire.spring.XFireSpringServlet
  </servlet-class>
 </servlet>
 <servlet-mapping>
  <servlet-name>xfire</servlet-name>
  <url-pattern>/service/*</url-pattern>
 </servlet-mapping>

 

3.创建java服务工程,在web工程中关联该java工程或将java服务工程打包jar放到web工程classpath下面。
服务对外接口:org.simpledev.spring.xfire.service

HelloService
 String sayHello(String username) throws RemoteException;
 User listUserById(int id) throws RemoteException;

 

接口实现类:org.simpledev.spring.xfire.service.impl

HelloServiceImpl implements HelloService
 public User listUserById(int id) throws RemoteException {
  System.out.println("server listUserById invoke");
  User user = new User(id,"纪纱","女",12,"日本都立海原高校");
  return user;
 }
 public String sayHello(String username) throws RemoteException {
  System.out.println("server sayHello invoke");
  return "你好 " + username;
 }

 

model对象
  属性:id,username,sex,age,address
  提供构造函数
  每个属性提供getXXX(),setXXX()方法

 

4.编辑applicationContext.xml
 

<import resource="classpath:org/codehaus/xfire/spring/xfire.xml" /> 
 <bean id="baseWebService" class="org.codehaus.xfire.spring.remoting.XFireExporter" lazy-init="false" abstract="true">  
  <property name="serviceFactory" ref="xfire.serviceFactory" />  
  <property name="xfire" ref="xfire" /> 
 </bean> 
 <bean id="userWS" class="org.simpledev.spring.xfire.service.impl.HelloServiceImpl">
 </bean> 
 <bean id="userService" parent="baseWebService">  
  <property name="serviceBean" ref="userWS" />  
  <property name="serviceClass" value="org.simpledev.spring.xfire.service.HelloService" /> 
 </bean>

 

测试部署是否成功,发布web工程,在IE地址栏中输入: http://127.0.0.1:8080/springxfire/service/,出现链接后: http://127.0.0.1:8080/springxfire/service/HelloService?wsdl
表示部署成功

 

5.测试工程

public static void main(String[] args) {
  try {
   Service serviceModel = new ObjectServiceFactory().create(HelloService.class);
   HelloService service = (HelloService) new XFireProxyFactory().create(
     serviceModel,
     "http://127.0.0.1:8080/springxfire/service/HelloService");
   //方法一 测试
   String str = service.sayHello("世界");
   System.out.println(str);
   //方法二 测试
   User user = service.listUserById(1);
   System.out.println("id:"+user.getId());
   System.out.println("username:"+user.getUsername());
   System.out.println("sex:"+user.getSex());
   System.out.println("age:"+user.getAge());
   System.out.println("address:"+user.getAddress());
  } catch (MalformedURLException e) {
   e.printStackTrace();
  } catch (RemoteException e) {
   e.printStackTrace();
  }
 }

 
 发现的问题:在实际项目中,
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>2.0</version>
    </dependency>一些jar包与原来项目中的spring jar可能会产生冲突,可以将spring-web jar去掉或覆盖,如下:
(
aopalliance-1.0.jar
avalon-framework-4.1.3.jar
commons-logging-1.1.jar
log4j-1.2.12.jar
logkit-1.0.1.jar
servlet-api-2.3.jar
spring-aop-2.0.jar
spring-beans-2.0.jar
spring-context-2.0.jar
spring-core-2.0.jar
spring-web-2.0.jar
)
其次web.xml中注意加载:xfire,否则测试是否部署成功时,http://.../service/,其实请求的就是在web.xml中配置的servlet

分享到:
评论
1 楼 menghuannvxia 2015-05-29  
请问下,你的xfire.xml这个文件是怎么写的,放在哪里了

相关推荐

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

    Spring作为一个强大的框架,提供了全面的依赖注入和面向切面编程能力,而XFire是早先的Web服务实现,它允许开发者轻松地将Java接口转换为SOAP Web服务。在本教程中,我们将深入探讨如何使用Spring和XFire编写Web服务...

    xfire+spring+webservice入门例子

    【xfire+Spring+WebService 入门实例详解】 在IT行业中,Web服务是一个重要的通信方式,它允许不同系统间的应用程序进行数据交换。本入门实例将深入探讨如何使用XFire框架与Spring集成来构建和消费Web服务。XFire是...

    xfire+spring+webservice例子

    【标题】"xfire+spring+webservice例子"是一个典型的示例项目,它演示了如何在Java环境中结合XFire和Spring框架来创建和消费Web服务。这个项目旨在帮助开发者理解和实践基于Spring的Web服务实现,同时也展示了XFire...

    xfire+spring开发webservice的例子

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

    Spring+hibernate+Xfire

    在"webservice和Spring接合的实例"这一标签中,我们可以推断这个例子还涉及到了Spring对Web服务的支持。Spring提供了多种Web服务工具,如Spring-WS和Spring-Integration-WS,可以方便地创建、消费和管理Web服务。...

    xfire实现webservice的例子

    【xfire实现Web服务的例子】 Web服务是一种基于标准的、平台无关的方式,使得应用程序能够通过互联网进行通信。在Java世界中,XFire是早期流行的Web服务框架,它简化了创建和消费Web服务的过程。XFire利用Java注解...

    xfire构建WebService例子

    本教程将详细讲解如何使用XFire来创建和消费一个简单的WebService。 首先,我们需要理解什么是XFire。XFire(现已被Apache CXF项目吸收)是一个基于Java的Web服务栈,它简化了SOAP(简单对象访问协议)和WS-*(Web...

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

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

    Spring+hebinate+xfire整合的web services服务器例子

    定义服务接口和服务实现,然后使用XFire的注解(如`@WebService`)标记你的服务类。 5. **配置XFire**:配置XFire的Servlet或CXF的FrontendServlet,指定服务发布的位置和端口。将Spring配置中的服务bean暴露为Web...

    简单的XFire WebService例子

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

    Xfire Webservice的例子

    在本例中,我们将探讨Xfire Webservice与Spring框架的集成,以及如何发布和调用Web服务。 首先,让我们了解Xfire的核心功能。Xfire是Apache CXF项目的一个早期版本,它提供了SOAP(Simple Object Access Protocol)...

    xfire+spring webservice

    标题 "xfire+spring webservice" 指的是在Java开发环境中,利用XFire和Spring框架来构建Web服务。这是一个常见的技术组合,用于快速、高效地创建和消费Web服务。让我们深入了解一下这两个组件以及它们如何协同工作。...

    xfire发布webservice服务

    XFire是Apache CXF的前身,它提供了简单、高性能的方式来实现基于SOAP的Web服务。这篇博客文章“xfire发布webservice服务”可能详细介绍了如何使用XFire来构建并发布一个Web服务。 【描述】:“NULL” 虽然描述为...

    webService+Xfire入门

    总的来说,"webService+Xfire入门"的教程适合初学者,通过它你可以快速了解Web Service的基本概念,学会使用MyEclipse创建、部署和测试Web Service,并理解XFire在Web服务开发中的作用。实践这个小例子,你将对Web ...

    WebService(二):XFire实现WebService

    **如何使用XFire实现WebService:** 1. **创建服务接口**:首先,定义一个Java接口,包含你希望暴露为Web服务的方法。 2. **实现服务接口**:编写实现该接口的类,提供具体业务逻辑。 3. **配置XFire**:通过XML...

    webservice xfire整合spring(webservice配置采用注解)例子

    【标题】中的“webservice xfire整合spring(webservice配置采用注解)”是指将Xfire,一个早期的Web服务框架,与Spring框架结合使用,其中Web服务的配置通过Spring的注解方式进行。这种方式简化了配置,提高了开发...

    xfire+webservice(服务器配置篇)

    本文档主要介绍了如何在现有的Spring2.5+Hibernate3.2基础上添加XFire来实现WebService服务的配置过程。通过逐步指导的方式,帮助读者了解整个配置流程,并提供相关的截图以辅助理解。 #### 环境准备 在开始之前,...

    xfire webservice 集成spring客户端封装例子

    xfire webservice 集成spring客户端封装成到一个类打包到客户端就像调静态方法一样

    webservice(xfire)+spring的二种实现方式

    在这个主题中,我们将深入探讨如何使用XFire与Spring框架结合,实现Web服务的两种不同方式。 首先,XFire是一个已不再维护的开源项目,它被Apache CXF所取代。尽管如此,理解XFire对于理解CXF或其他Web服务实现仍有...

Global site tag (gtag.js) - Google Analytics