本篇介绍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 测试一下是否正常
分享到:
相关推荐
"WS_Spring_服务器端"和"WSClient_客户端"则分别代表了服务器端的Web服务实现和客户端的调用代码。这些文件可以帮助你理解如何实际操作和测试XFire与Spring结合发布的Web服务。 总的来说,XFire和Spring的结合使用...
综上所述,"xfire+spring"项目是一个结合了XFire Web服务框架和Spring企业级应用框架的项目,涵盖了客户端和服务器端的开发,涉及Web服务的创建、依赖管理、通信机制等多个重要知识点。在实际操作中,需要对这些技术...
【整合XFire与Spring进行Web Service开发】 XFire是一个基于Java的SOAP Web Service框架,而Spring是一个广泛应用的轻量级框架,它提供了依赖注入、面向切面编程等特性。将两者集成可以方便地构建和消费Web Service...
本文将深入探讨如何使用Eclipse集成开发环境(IDE)结合XFire库来开发Web服务服务器端。XFire是Apache CXF的一部分,是一个轻量级、高性能的Java Web服务框架,支持SOAP、WS-*规范以及RESTful风格的服务。 首先,...
在本文中,我们将深入探讨Java XFire在构建Web服务服务器端的角色,以及如何利用它进行开发。 首先,让我们理解Web服务的基本概念。Web服务是一种基于互联网的软件应用,它提供了一种标准化的方式,使不同系统之间...
在提供的"TestXFireServer"文件中,很可能是包含了一个简单的XFire服务服务器端的测试程序。你可以运行这个程序,查看其如何设置和启动服务。同时,也可以参考这个示例来创建自己的服务和客户端。 总之,XFire是一...
二、服务器端发布WebServices接口 1. 配置环境:首先确保已安装Java SDK和Maven,然后在项目中引入CXF的相关依赖。在pom.xml文件中添加如下依赖: ```xml <groupId>org.apache.cxf <artifactId>cxf-rt-frontend-...
在本例中,我们将探讨如何使用XFire来创建一个简单的WebService服务器端。 首先,让我们了解什么是Web服务。Web服务是一种通过网络(通常使用HTTP协议)进行通信的应用程序接口。它们允许不同系统之间的数据交换,...
本篇文章将深入探讨XFire在实现Web服务方面的原理、用法以及如何在服务器端和客户端进行简单的调用。 首先,让我们理解什么是Web服务。Web服务是一种基于开放标准(如SOAP、WSDL和UDDI)的协议,使得不同系统能够...
虽然XFire在当时是一个强大的工具,但随着技术的发展,它已经被更现代的框架如Apache CXF、Spring WebServices等取代。这些框架提供了更多的功能,如更好的WS-Security支持、更丰富的绑定选项和更紧密的Spring框架...
5. **JAX-RPC或JAX-WS**:Java API for XML-based RPC或Web Services,是Java标准,用于构建Web服务客户端和服务器端。 在压缩包的"lib"目录下,很可能包含上述部分或全部组件的JAR文件。例如,可能包含XFire自身的...
它的客户端和服务器端代码都可以通过XFire自动生成,大大提升了开发效率。 在XFire的配置中,需要特别注意的是services.xml文件,这是用于定义服务接口的核心配置文件。它通常位于META-INF目录下,这个目录应该放在...
在MyEclipse中使用XFire开发WebService是一种常见的Java Web服务...此外,随着技术的发展,现在的Web服务开发更倾向于使用JAX-WS或Spring Boot等现代框架,但了解XFire的历史和使用方法对理解Web服务的本质仍有帮助。
使用这些jar文件,开发者可以在他们的Java应用中集成XFire,创建一个能够与服务器端Web服务进行交互的客户端。他们需要导入这些库,然后使用XFire提供的API来构造请求,发送到Web服务,并处理返回的结果。 例如,一...
- **xfire-jws.jar**: 提供对Java Web Services (JWS)的支持,允许直接在服务器端运行Java类作为Web服务。 - **xfire-xmpp.jar**: 支持XMPP协议,扩展了Web服务的交互方式。 - **xfire-annotations.jar**: 提供注解...
Xfire以其简洁的配置和强大的功能,为开发人员提供了一种高效且灵活的方式来构建Web服务,无论是在服务器端创建服务,还是在客户端消费服务,都变得更加便捷。然而,值得注意的是,Xfire目前已经不再活跃,可能无法...
在本场景中,我们关注的是服务器端程序的实现,它通常由一系列接口定义和服务实现组成,通过SOAP(Simple Object Access Protocol)协议进行通信,使用WSDL(Web Services Description Language)进行服务描述,而...
xfire jar包是一款用于构建Web服务的开源框架,它提供了基于Java的SOAP和XML-RPC实现,便于开发者创建和消费Web服务。xfire-all-1.2.6.jar是这个框架的核心库,包含了xfire的主要功能,使得开发人员能够快速地在Java...
XFire是Java开发者用于构建Web服务的一个开源SOAP框架,它提供了轻量级的信息处理模块,并利用STAX(Streaming API for XML)来处理SOAP消息。XFire不仅支持简单的API,使POJO(Plain Old Java Object)和schema开发...
1. **搭建服务器端环境**:按照前面的步骤,完成XFire的服务器端开发环境的配置。 2. **定义服务接口和实现**:创建一个服务接口(如`UserService`),并提供相应的实现类。接口定义了Web服务的操作,而实现类是...