xfire1.2.6支持jdk1.4以上的版本,但是有些比如JSR181注解需要jdk的更高版本,我的例子是一个简单的读取文件程序,服务器是Apache Tomcat6.0.18。
假定你已经了解如何使用Java编写Web应用程序,并知道应该如何把它部署到Apache Tomcat服务器上。话不多说,开始webservice的开发步骤吧!
1.从xfire的官方网站http://xfire.codehaus.org/Download上下载xfire-distribution-1.2.6.zip最新版的包,压缩包的lib中有它所需的依赖包,将它放入web-info的lib路径下,包有以下这些:
2.在web.xml文件中加入
<servlet>
<servlet-name>XFireServlet</servlet-name>
<servlet-class>
org.codehaus.xfire.transport.http.XFireConfigurableServlet
</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/resource/services.xml</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
init-param节点不是必须的,如果不配置的话,需要在src的路径中加入META-INFO文件夹,里面加入services.xml文件。配置的话可以指定services.xml文件的路径。
3. 业务代码实现就没有什么好说的啦,如下一个接口(IReadService)和一个实现类(ReadService)
package com.tjn.impl;
public interface IReadService {
public String readFiles();
}
package com.tjn.impl;
import java.io.File;
public class ReadService implements IReadService {
//Default constructor.
public ReadService(){
}
public String readFiles() {
// TODO Auto-generated method stub
String result="";
File file=new File("d:/test");
String[] files=file.list();
for (int i = 0; i < files.length; i++) {
result+=files[i]+"\n";
}
return result;
}
}
默认的构造函数类型必须是public。否则,XFire不能够初始化这个类。
4.services.xml文件中的配置
<beans xmlns="http://xfire.codehaus.org/config/1.0">
<service>
<name>WebserviceTest</name>
<namespace>mywebserviceTest</namespace>
<serviceClass>com.tjn.impl.IReadService</serviceClass>
<implementationClass>com.tjn.impl.ReadService</implementationClass>
/service>
</beans>
第一个子元素是,它可以是你提供任何的合法名字。这将会被客户端程序和其它需要定位你的服务的组件用到。
例如,在服务准备好以后,你将在浏览器上使用这个名字来查看WSDL。
下一个子元素是<namespace>。任何合法的XML名字都是可以的。
<namespace>用来唯一标识你的服务的各个参数。
<serviceClass>元素包含了Java类的名字,它指定了方法签名。
在本例中,它是接口IReadService。
如果Java类没有实现任何接口,你就需要把类的名字放在这里。
在你的Java类或者接口中可能有几个方法。只需要一个入口把它们全部发布为Web Services。
<implementationClass>保存了实现方法的Java类名。这是一个可选元素。
如果上一个元素<serviceClass>包含了一个接口,那么相应的实现类必须在这里指定。
这样Web Services就配置完成了。
测试服务器端的webservice是否发布成功,测试如下:
启动tomcat,在地址栏中输入http://localhost:8080/WebST/services/WebserviceTest?wsdl,如果能看到类似xml的页面文件就差不多了,
但是这个测试是不够的。可能会发生这种情况,可以看到WSDL,但是从客户端程序可能会访问不到服务。
因此为了核实服务是否可以访问了,我们必须使用一个客户端进行服务的实际调用来进行一个真正的测试。
下面是客户端的代码:
package com.tjn.clienttest;
import java.net.MalformedURLException;
import org.codehaus.xfire.XFire;
import org.codehaus.xfire.XFireFactory;
import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;
import com.tjn.common.Global;
import com.tjn.impl.IReadService;
public class ClientTest {
public static void main(String[] args) {
Service serviceModel = new ObjectServiceFactory().create(IReadService.class);
XFire xfire = XFireFactory.newInstance().getXFire();
XFireProxyFactory factory = new XFireProxyFactory(xfire);
String serviceUrl ="http://localhost:8080/WebST/service/WebserviceTest?wsdl";
IReadService client = null;
try {
client = (IReadService) factory.create(serviceModel, serviceUrl);
System.out.println(client.readFiles());
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
这个代码是如何工作的呢?
首先,我们创建一个服务模型,它包含服务的说明——换句话说,就是服务的元数据。
我们使用XFire的ObjectServiceFactory从IBReadService.class接口创建这个模型。
接着,为XFire获得一个代理工厂对象,它包含了常规的代码,也相当地简单和易懂。
这一步中没有任何特定应用的东西。从这个proxyFactory,
使用服务模型和服务端点URL(用来获得WSDL),我们可以得到一个服务的本地代理(实际的客户端)。
现在,我们可以调用它的readFiles()方法来得到我们需要的Web Service。
同时客户端只需的jar比较少,基本的就是有以下这些包就可以了
如果客户端能接收服务器端返回的信息就成功啦!
在实际项目中,有服务器端发布的接口,在客户端只需要有一个和服务器端相同的接口就可以了,不需要实现类,调用接口中的方法时会调用服务器端的实现类中的方法。
- 大小: 25.4 KB
- 大小: 13 KB
分享到:
相关推荐
在本文中,我们将详细介绍如何在MyEclipse 6.5环境下使用XFire框架创建和消费Web服务。XFire是一个快速、轻量级且功能丰富的Java Web服务实现库,它使得在Java应用中构建和使用Web服务变得简单。 **一、创建Web服务...
在本文中,我们将探讨如何在MyEclipse环境下利用Xfire框架发布Web服务,并进行客户端调用。Xfire是一个轻量级的Java Web服务框架,它简化了服务的创建和部署过程。 首先,确保你的开发环境准备就绪。安装Java ...
### XFire在MyEclipse中配置详解 #### XFire与MyEclipse的融合:搭建高效Web Service开发环境 XFire是一款高性能的Java SOAP框架,以其轻量级、易用性及对多种标准的支持(如JAXB、XMLBeans、Java5和JAX-WS等)而...
在本教程中,我们将深入探讨如何在MyEclipse 6.5版本中使用JAX-WS(Java API for XML Web Services)技术开发Web服务。这是一个非常实用的指南,旨在帮助开发者快速掌握Webservice的创建、部署和测试过程,特别适合...
- 在MyEclipse中创建一个新的WebService项目,命名为`xfire`。 - 自动生成的文件包括`web.xml`(包含Servlet和Servlet映射)、`service.xml`等。 ##### 2. 编写Java接口和服务实现 - 在`src/hello`包中创建接口类`...
【在MyEclipse中使用XFire开发Web服务】 在MyEclipse环境中,开发基于XFire的Web服务分为几个步骤: 1. **环境配置**:首先确保安装了MyEclipse 7.0及JDK 1.6或更高版本。 2. **创建Web服务项目**:通过File -> ...
1. 在MyEclipse中选择`File` -> `New` -> `Other`,然后选择`WebService Project`。 2. 设置项目名称为`WebServiceServer`,选择框架为`XFire`,其余选项保持默认设置。 3. 进入下一步,通常情况下保持默认设置即可...
Spring+xFire 实现 WebService 是一种在 Java 开发中创建和使用 Web 服务的方式,它结合了 Spring 框架的灵活性和 xFire(现在称为 Apache CXF)的 Web 服务功能。以下是对这个技术栈的详细说明: 1. **环境配置**...
本文将介绍如何在MyEclipse环境中利用XFire框架开发Web服务。XFire是一个开源的Java SOAP框架,其特点是轻量级且高效,它利用STAX处理SOAP信息,支持多种Web服务标准,包括Spring整合、JBI、JAXB、XMLBeans、Java 5...
在本篇文章中,我们将详细介绍如何使用 XFire 建立一个 Webservice 实例,并将其部署到 Tomcat 服务器中。 一、建立工程 要建立一个 Webservice 实例,首先需要创建一个新的 Web 服务项目。在 MyEclipse 中,选择 ...
在本文中,我们将深入探讨如何使用MyEclipse开发Webservice的实例,特别关注XFire框架。 1. **XFire框架**: XFire是Java平台上的一个SOAP(简单对象访问协议)框架,它被MyEclipse的Web Services功能所采用。...
这个例子展示了XFire的简单易用性,以及MyEclipse作为集成开发环境在Web服务开发中的强大支持。通过这个过程,你可以理解Web服务的基本结构,包括接口定义、实现逻辑以及部署到应用服务器的流程。在实际开发中,可以...
本文将详细介绍如何利用XFire在MyEclipse环境中创建一个简单的Web Service实例。 首先,我们需要创建一个新的Web Service项目。在MyEclipse中,通过`File` -> `New` -> `Project`,选择`Web Service Project`,然后...
在MyEclipse这样的集成开发环境中,创建和部署基于XFire的Webservice项目非常便捷。以下是一个详细的步骤指南: **环境配置** 首先,确保你已安装MyEclipse 7.0和JDK 1.6,这是开发XFire Webservice的基础。 **...
在软件开发过程中,WebService 是一种非常重要的技术,它允许不同的系统和应用程序之间进行交互和集成。本文将详细介绍如何使用 MyEclipse 开发一个简单的 WebService,包括服务端和客户端的开发步骤。 一、环境...
在 MyEclipse 中创建 WebService 时,可以采取不同的策略。此处介绍的是 Code-First Strategy,即先编写 Java 类,再基于这些类生成 WebService 接口和服务。 1. **启动 MyEclipse WebService Wizard** - 方法 1:...
1. **部署项目**:确保Tomcat服务器已正确配置,并将项目部署到Tomcat中。 2. **启动服务器**:启动Tomcat服务器。 3. **测试接口**:在MyEclipse中选择工具栏上的`Launch SOAP Web Service Explorer`,在Web ...