`
pokerwen
  • 浏览: 62736 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

spring 结合xfire使用的详细配置

阅读更多

这几天在弄WebService的东西,是使用XFire+spring的。走了不少的弯路,差点想放弃了。为了日后方便,先记下这几天的收获。

刚开始的时候,不知道xfire还有针对spring的版本,直接将pojo expose成为web service。最后发现竟然不能够使用spring的注入功能。换句话说,即如果这个pojo使用了spring的注入机制,注入了其他bean的话,无法注入。

在看了网上无数篇copy的文章后,发现需要另外整合XFire+spring。先整理如下:

1. 制作web service的service类。这里需要同时具有接口和实现类。

我这里假设有一个ExCommService和他的接口IExCommService。ExCommService中是有使用spring注入了属性的。并通过spring配置其为一个Service,名字为exCommService。

2. 通过myeclipse增加XFire的code library和HTTP Client library。

3. 修改web配置,令符合http://{ip}:{port}/{prjName}/services/*的url才作为web service的方法暴露给用户。

3.1 增加DispatcherServlet。

因为spring与xfire的整合是通过DispatcherServlet完成的,所以必须要配置。

<servlet-name>dipatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>

      <!-- 我的配置文件都是以config_开头的 -->
      <param-value>/WEB-INF/config_*.xml</param-value>
    </init-param>
    <load-on-startup>0</load-on-startup>
  </servlet>

3.2 配置mapping

<servlet-mapping>
    <servlet-name>dipatcher</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>dipatcher</servlet-name>
    <url-pattern>/services/*</url-pattern>
  </servlet-mapping>

4. 配置web service对应的配置文件,config_webservice.xml

这个文件一般需要自己来建立。因为你肯定也不希望把所有的配置都放在dipatcher-servlet.xml中吧?

4.1 为spring mvc和xfire做配置设定

这点很重要,没有这句话,在尝试看wsdl文件时会报错:“No adapter for handler [....XFireExporter@60e78]: Does your handler implement a supported interface like Controller? ”

<bean id="controllerHandlerAdapter" class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>

4.2 加载xfire为spring定制的一些bean

<import resource="classpath:org/codehaus/xfire/spring/xfire.xml"/>

4.3 定义一个web service的父bean,这样可以节省配置。这些都是死配置,不解释了。

<bean id="baseWebService"
        class="org.codehaus.xfire.spring.remoting.XFireExporter" abstract="true">
        <property name="serviceFactory" ref="xfire.serviceFactory" />
        <property name="xfire" ref="xfire" />
    </bean>

4.4 定义web service的相关信息

<bean id="exCommService.xfire" parent="baseWebService">
        <property name="serviceBean" ref="exCommService" />
        <property name="serviceClass" value="com.wtmec.eccn.ws.IExCommService" />
        <property name="namespace" value="http://10.4.1.16:8080/eccn" />
    </bean>

其中serviceBean属性代表需要作为web service的bean在spring中定义的名称。参考第1点;

serviceClass属性代表serviceBean所实现的接口的完整路径。

namespace属性代表的是将来service端应该通过哪个链接访问我们的web service。

5. 配置HandlerMapping。spring需要这个配置来将用户的请求转向我们的service Bean中去。

<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="urlMap">
            <map>
                <entry key="/exCommService"><ref bean="exCommService.xfire"/></entry>
            </map>
        </property>
    </bean>

经过上面的配置后,启动tomcat,然后通过:http://10.4.1.16:8080/eccn/services/exCommService?wsdl就可以访问wsdl文件了。

 

下面来讲客户端调用。===================

1. 加入跟server端一样的library。参考上面的第1点

2. 将serviceClass对应的接口加入客户端中。

3. 书写调用代码: PS:代码太简单,不另外注释了。

private String url = "http://10.4.1.16:8080/eccn/services/exCommService";
    public String checkLicenseByOB(String obno) throws Exception{
        Service serviceModel = new ObjectServiceFactory().create(IExCommService.class);
        IExCommService service = (IExCommService)
        new XFireProxyFactory().create(serviceModel, url);
       
        return service.checkLicenseByOB(obno);
    }

在生成接口对应的service后,用户就可以像调用本地方法一样调用远程的方法了。

 

最后要感谢一篇国外的帖子。他解决了我的问题

http://forum.springsource.org/archive/index.php/t-26378.html

分享到:
评论

相关推荐

    spring与xfire结合

    总结来说,Spring与XFire的结合为Java Web服务开发提供了强大的工具集,通过Spring的管理和配置能力,以及XFire的Web服务实现,我们可以构建出易于维护、高度模块化的服务架构。对于开发者而言,理解和掌握这种整合...

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

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

    Spring和XFIRE结合

    标题 "Spring和XFIRE结合" 暗示了本文将探讨如何在Java应用程序开发中整合Spring框架与XFire服务框架,以实现轻量级、基于XML的Web服务。Spring是Java领域广泛使用的依赖注入(DI)和面向切面编程(AOP)框架,而...

    spring和xfire配置

    总的来说,通过上述配置,我们可以创建一个使用Spring和XFire的Web服务应用程序,实现服务的发布和调用。这种集成方式既保持了Spring的灵活性,又充分利用了XFire的Web服务特性,为开发高效、可维护的Web服务提供了...

    Xfire配置Web Service+Spring+Hibernate详细配置流程

    以下是关于"Xfire配置Web Service+Spring+Hibernate详细配置流程"的知识点详解: 1. **Spring框架**: Spring是Java企业级应用开发的首选框架,提供依赖注入(DI)和面向切面编程(AOP)。在Web服务场景中,Spring...

    Spring + Xfire + 注解方式

    描述中提到的博客链接虽然无法直接访问,但根据常规的博客内容,博主可能详细解释了如何将Spring与Xfire结合,以及如何通过注解的方式来替代传统的XML配置,以实现更加简洁、直观的代码结构。 在使用注解的方式时,...

    xfire+spring+安全认证

    结合XFire和Spring,我们可以构建一个安全的Web服务环境。首先,Spring Security可以用来实现用户的登录认证,包括存储和验证用户名、密码,以及处理会话超时和并发会话控制。其次,XFire可以配置为只接受经过Spring...

    spring 集成xfire 比较好的一种方式

    将这两者结合可以利用 Spring 的强大功能来管理和配置 XFire,同时保持代码的简洁和模块化。 ### Spring 集成 XFire 的优势 1. **依赖注入(Dependency Injection)**:Spring 的核心特性之一,通过依赖注入可以...

    Spring+xFire+wss4j配置Helloworld完整版,Myeclipse项目服务端+客户端.rar

    项目中包含的`Spring+xFire+wss4j配置Helloworld完整版.doc`文档,应该详细阐述了每个步骤,包括项目结构、配置文件的设置以及如何运行服务端和客户端。而`xalan.jar`是一个XSLT处理库,可能在转换XML文档时被用到。...

    spring和xfire 整合webservice

    在提供的"testspringandxfire"压缩包文件中,可能包含了示例代码、配置文件或者测试用例,帮助用户更好地理解和实践Spring与XFire的整合过程。对这些文件进行研究和实践,将有助于深入理解如何在实际项目中运用这种...

    Spring+xFire实现webService

    Spring+xFire 实现 WebService 是一种在 Java 开发中创建和使用 Web 服务的方式,它结合了 Spring 框架的灵活性和 xFire(现在称为 Apache CXF)的 Web 服务功能。以下是对这个技术栈的详细说明: 1. **环境配置**...

    spring,xfire开发soap接口

    标题 "spring,xfire开发soap接口" 暗示了我们即将探讨的是如何使用Spring框架与XFire库来创建SOAP(简单对象访问协议)服务。SOAP是一种基于XML的协议,常用于Web服务,允许不同系统间交换结构化信息。在这个话题中...

    Spring+xfire实现WebService

    在IT行业中,构建Web服务是常见的任务,而Spring框架与XFire的结合提供了一种高效且灵活的方式来创建和消费Web服务。本篇文章将深入探讨如何使用Spring和XFire来实现Web服务,以及这两个组件的核心功能和它们之间的...

    webservice spring xfire的实例

    【描述】:这篇博客文章通过一个实际的案例,探讨了如何将Web服务与Spring框架相结合,使用XFire进行开发。XFire是Spring框架早期用于实现Web服务的一个库,它提供了一种简单而高效的方式来创建和消费SOAP服务。虽然...

    spring webService hibernate结合xfire

    标题 "spring webService hibernate结合xfire" 描述了一个整合技术的应用,即Spring、Web服务(WebService)和Hibernate框架与Xfire的结合。在这个项目中,开发者可能想要创建一个基于Java的Web服务,该服务能够利用...

    XFire整合spring webservice

    首先,我们需要创建一个Spring配置文件(如`applicationContext.xml`),在这个文件中定义Bean来配置我们的服务实现类和XFire相关的配置。例如,我们可以声明一个服务接口的实现类Bean,然后使用Spring的`...

    Spring XFire 实现webService

    当Spring与XFire结合时,可以提供一个优雅的、面向切面的Web服务解决方案。本文将深入探讨如何使用Spring与XFire集成来实现Web服务。 首先,我们需要理解Spring的核心特性。Spring是一个轻量级的容器,它提供了依赖...

Global site tag (gtag.js) - Google Analytics