`
java_4_ever
  • 浏览: 5207 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类

XFire + Spring构建Web Services服务器端(二)

阅读更多

本篇介绍XFire + Spring构建Web Services服务器端的第二种办法。

两种办法的不同之处在于:

第一种办法的ServletClass是org.codehaus.xfire.spring.XFireSpringServlet,这种办法服务的声明在Spring配置文件中完成,即applicationContext.xml文件中。

第二种办法的ServletClass是org.springframework.web.servlet.DispatcherServlet,这种办法需要另外在WEB-INF文件夹下新建一个XFireServlet-servlet.xml,服务声明在该文件中(和applicationContext.xml,web.xml在同一目录下),这里的XFireServlet是web.xml文件中servlet的名字,需要保持一致。


1、web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  
	<context-param>  
        <param-name>contextConfigLocation</param-name>  
        <param-value>  
            /WEB-INF/XFireServlet-servlet.xml,  
            /WEB-INF/applicationContext.xml  
       </param-value>  
    </context-param>  
  
    <listener>  
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
    </listener>

	<servlet>  
        <servlet-name>XFireServlet</servlet-name>  
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
    </servlet>  
  
    <servlet-mapping>  
        <servlet-name>XFireServlet</servlet-name>  
        <url-pattern>/servlet/XFireServlet/*</url-pattern>  
    </servlet-mapping>  
  
    <servlet-mapping>  
        <servlet-name>XFireServlet</servlet-name>  
        <url-pattern>/services/*</url-pattern>  
    </servlet-mapping> 


</web-app>

<servlet>中的servlet-name可自己设定,但是{servlet-name}-servlet必须为新建xml文件的名字,如程序中servlet-name为XFireServlet,则新建的xml文件的名字为:XFireServlet-servlet.xml,而且该文件的路径需要加入<context-param>下面的<param-value>中。(这个地方见到有的例子并没有加入这个文件的路径,而是:classpath:org/codehaus/xfire/spring/xfire.xml,这点我没写例子实践。)

 

2、接口类和实现类

 package  webservice;
 
 /** 
  *HelloWorld的接口类.
   */ 
 public interface HelloWorld  {
      /** 
      *对名字为name的人打招呼.
      *@paramname名字
      *@return返回打招呼的字符串
       */ 
     String sayHelloWorld(String name);
 } 
 我们还需要建立一个对应的实现类,来实现sayHelloWorld的功能,该实现类即为HelloWorldImpl.java。该类的详细内容如下:
 package  webservice;
 /** 
  *HelloWorld的实现类.
   */ 
 public class HelloWorldImpl  implements  HelloWorld  {
      public  String sayHelloWorld(String name)  {
        String helloWorld  =   " hello, "   +  name;
         return  helloWorld;
     } 
 } 

这个没什么特别的

 

3、配置applicationContext.xml文件

<? xml version="1.0" encoding="UTF-8" ?> 
 <! DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
     "http://www.springframework.org/dtd/spring-beans.dtd" > 
 < beans > 
      < bean  id ="HelloWorldBean"  class ="webservice.HelloWorldImpl" /> 
 </ beans >

4、配置服务(XFireServlet-servlet.xml)

 

 <? xml version="1.0" encoding="UTF-8" ?> 
 <! DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
     "http://www.springframework.org/dtd/spring-beans.dtd" > 
 < beans > 
      <!--  引入XFire预配置信息  --> 
      < import  resource ="classpath:org/codehaus/xfire/spring/xfire.xml"   /> 
      <! —定义访问的url-- > 
      < bean  class ="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping" > 
         < property  name ="urlMap" >              
             < map >                  
                < entry  key ="/HelloWorldService.ws" >                   
                    < ref  bean ="HelloWorldService"   />                  
                </ entry >              
             </ map >          
         </ property >      
      </ bean >      
 
      <!--  使用XFire导出器  --> 
      < bean  id ="baseWebService"  class ="org.codehaus.xfire.spring.remoting.XFireExporter"  lazy-init ="false"  abstract ="true" > 
         <!--  引用xfire.xml中定义的工厂  --> 
         < property  name ="serviceFactory"  ref ="xfire.serviceFactory"   /> 
         <!--  引用xfire.xml中的xfire实例  --> 
         < property  name ="xfire"  ref ="xfire"   /> 
      </ bean > 
      < bean  id ="HelloWorldService"  parent ="baseWebService" > 
         <!--  业务服务bean  --> 
         < property  name ="serviceBean"  ref ="HelloWorldBean"   /> 
         <!--  业务服务bean的窄接口类  --> 
         < property  name ="serviceClass"  value ="webservice.HelloWorld"   /> 
      </ bean > 
 </ beans > 

如果有多个服务,添加多个<entry></entry>即可

 


配置完成在浏览器中输入http://localhost:8080/webservice_helloworld/HelloWorldService.ws?wsdl 测试一下是否正常

分享到:
评论

相关推荐

    XFire与Spring组合发布webservices

    "WS_Spring_服务器端"和"WSClient_客户端"则分别代表了服务器端的Web服务实现和客户端的调用代码。这些文件可以帮助你理解如何实际操作和测试XFire与Spring结合发布的Web服务。 总的来说,XFire和Spring的结合使用...

    xfire+spring

    综上所述,"xfire+spring"项目是一个结合了XFire Web服务框架和Spring企业级应用框架的项目,涵盖了客户端和服务器端的开发,涉及Web服务的创建、依赖管理、通信机制等多个重要知识点。在实际操作中,需要对这些技术...

    整理xfire和spring的集成 web service 面向服务编程 java

    【整合XFire与Spring进行Web Service开发】 XFire是一个基于Java的SOAP Web Service框架,而Spring是一个广泛应用的轻量级框架,它提供了依赖注入、面向切面编程等特性。将两者集成可以方便地构建和消费Web Service...

    eclipse 使用xfire开发webservices server

    本文将深入探讨如何使用Eclipse集成开发环境(IDE)结合XFire库来开发Web服务服务器端。XFire是Apache CXF的一部分,是一个轻量级、高性能的Java Web服务框架,支持SOAP、WS-*规范以及RESTful风格的服务。 首先,...

    java xfire webService服务器端

    在本文中,我们将深入探讨Java XFire在构建Web服务服务器端的角色,以及如何利用它进行开发。 首先,让我们理解Web服务的基本概念。Web服务是一种基于互联网的软件应用,它提供了一种标准化的方式,使不同系统之间...

    Webservices XFire框架的搭建与使用

    在提供的"TestXFireServer"文件中,很可能是包含了一个简单的XFire服务服务器端的测试程序。你可以运行这个程序,查看其如何设置和启动服务。同时,也可以参考这个示例来创建自己的服务和客户端。 总之,XFire是一...

    CXF 框架实战代码---服务器端发布WebServices接口

    二、服务器端发布WebServices接口 1. 配置环境:首先确保已安装Java SDK和Maven,然后在项目中引入CXF的相关依赖。在pom.xml文件中添加如下依赖: ```xml &lt;groupId&gt;org.apache.cxf &lt;artifactId&gt;cxf-rt-frontend-...

    XFire创建的WebService

    在本例中,我们将探讨如何使用XFire来创建一个简单的WebService服务器端。 首先,让我们了解什么是Web服务。Web服务是一种通过网络(通常使用HTTP协议)进行通信的应用程序接口。它们允许不同系统之间的数据交换,...

    webservice的xfire

    本篇文章将深入探讨XFire在实现Web服务方面的原理、用法以及如何在服务器端和客户端进行简单的调用。 首先,让我们理解什么是Web服务。Web服务是一种基于开放标准(如SOAP、WSDL和UDDI)的协议,使得不同系统能够...

    WebService(二):XFire实现WebService

    虽然XFire在当时是一个强大的工具,但随着技术的发展,它已经被更现代的框架如Apache CXF、Spring WebServices等取代。这些框架提供了更多的功能,如更好的WS-Security支持、更丰富的绑定选项和更紧密的Spring框架...

    xfire需要的所有jar包

    5. **JAX-RPC或JAX-WS**:Java API for XML-based RPC或Web Services,是Java标准,用于构建Web服务客户端和服务器端。 在压缩包的"lib"目录下,很可能包含上述部分或全部组件的JAR文件。例如,可能包含XFire自身的...

    xfire 使用方法

    它的客户端和服务器端代码都可以通过XFire自动生成,大大提升了开发效率。 在XFire的配置中,需要特别注意的是services.xml文件,这是用于定义服务接口的核心配置文件。它通常位于META-INF目录下,这个目录应该放在...

    在MyEclipse中使用XFire开发WebService

    在MyEclipse中使用XFire开发WebService是一种常见的Java Web服务...此外,随着技术的发展,现在的Web服务开发更倾向于使用JAX-WS或Spring Boot等现代框架,但了解XFire的历史和使用方法对理解Web服务的本质仍有帮助。

    xfire客户端需要的jar

    使用这些jar文件,开发者可以在他们的Java应用中集成XFire,创建一个能够与服务器端Web服务进行交互的客户端。他们需要导入这些库,然后使用XFire提供的API来构造请求,发送到Web服务,并处理返回的结果。 例如,一...

    xfire实现webservce所要的包

    - **xfire-jws.jar**: 提供对Java Web Services (JWS)的支持,允许直接在服务器端运行Java类作为Web服务。 - **xfire-xmpp.jar**: 支持XMPP协议,扩展了Web服务的交互方式。 - **xfire-annotations.jar**: 提供注解...

    Xfire WebService框架搭建指南

    Xfire以其简洁的配置和强大的功能,为开发人员提供了一种高效且灵活的方式来构建Web服务,无论是在服务器端创建服务,还是在客户端消费服务,都变得更加便捷。然而,值得注意的是,Xfire目前已经不再活跃,可能无法...

    WebService服务器端程序

    在本场景中,我们关注的是服务器端程序的实现,它通常由一系列接口定义和服务实现组成,通过SOAP(Simple Object Access Protocol)协议进行通信,使用WSDL(Web Services Description Language)进行服务描述,而...

    xfire jar包

    xfire jar包是一款用于构建Web服务的开源框架,它提供了基于Java的SOAP和XML-RPC实现,便于开发者创建和消费Web服务。xfire-all-1.2.6.jar是这个框架的核心库,包含了xfire的主要功能,使得开发人员能够快速地在Java...

    xfire下webservice服务实例.docx

    XFire是Java开发者用于构建Web服务的一个开源SOAP框架,它提供了轻量级的信息处理模块,并利用STAX(Streaming API for XML)来处理SOAP消息。XFire不仅支持简单的API,使POJO(Plain Old Java Object)和schema开发...

    XFire技术研究报告.doc

    1. **搭建服务器端环境**:按照前面的步骤,完成XFire的服务器端开发环境的配置。 2. **定义服务接口和实现**:创建一个服务接口(如`UserService`),并提供相应的实现类。接口定义了Web服务的操作,而实现类是...

Global site tag (gtag.js) - Google Analytics