最近做的一个项目,因要用的webservice,因看了一下这方面的东西,以前只是听说,从未用过,目前较流行的webservice 第三方有:xfire和axis,而axis是Apache下的项目,这里我主要说的是xfire:
基于xfire的webservice开发主要由以下几步:
1.定义web接口;
2.实现web接口;
3.描述wsdl,即web服务,
4.发布webservice
5.客户端调用;
下面给出一个例子,来分析各步:
准备工作,新建一个web工程,这里我定义为:xfiretest,定义包:com.test
1)定义web接口:com.test.ITestService
public interface ITestService {
public void say();
}
2)实现web接口:com.test.TestService
public class TestService implements ITestService {
public void say() {
// TODO Auto-generated method stub
System.out.println("web service调用成功!!!");
}
}
3)描述wsdl,即web服务:
先要工程的src下新建文件夹:META-INF/xfire,然后新建文件,名为service.xml(必须为此名)
<?xml version="1.0" encoding="UTF-8"?>
<beans>
<service xmlns="http://xfire.codehaus.org/config/1.0">
<name>Test</name><!-- web service调用的服务名,如:http://localhost:8080/xfiretest/services/Test -->
<serviceClass>com.test.ITestService</serviceClass><!-- web service接口 -->
<implementationClass>com.test.TestService</implementationClass><!-- web service的实现 -->
<style>wrapped</style>
<use>literal</use>
<scope>application</scope>
</service>
</beans>
注意:这里节点名为"beans",你可能想到了spring的bean,不错,在《XFire开发指南》一书中指出,xfire用XBean语法来处理这个service.xml文件,而XBean允许用户将自定义语法与spring语法混在一起,由此我们开以看以xfire也需spring的支持,因些在稍后我给出的jar包中有spring的jar。
service.xml文件放在该目前下,就可以编译到classes下。
到这里还有重要的一步,就要要在web工程里提供对web service的支持,在web.xml文件里添加一个XfireServlet
在web.xml添加如下代码:
<servlet>
<servlet-name>XFireServlet</servlet-name>
<servlet-class>
org.codehaus.xfire.transport.http.XFireConfigurableServlet
</servlet-class>
<load-on-startup>0</load-on-startup>
</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>
4)发布web service
启动web 服务器,我这里用的是Tomcat,当然你可以选择自己较熟悉的服务器
然后在浏览器里输入 :http://localhost:8080/xfiretest/services/Test?wsdl
就可以看到你所发布的web service 信息,"services/Test?wsdl
"就是你在service.xml中定的web service名子
如果你能看到如下信息:
<wsdl:definitions targetNamespace="http://test.com">
<wsdl:types>
<xsd:schema attributeFormDefault="qualified"
elementFormDefault="qualified" targetNamespace="http://test.com">
<xsd:element name="say">
<xsd:complexType />
</xsd:element>
<xsd:element name="sayResponse">
<xsd:complexType />
</xsd:element>
</xsd:schema>
</wsdl:types>
<wsdl:message name="sayRequest">
<wsdl:part name="parameters" element="tns:say"></wsdl:part>
</wsdl:message>
<wsdl:message name="sayResponse">
<wsdl:part name="parameters" element="tns:sayResponse">
</wsdl:part>
</wsdl:message>
<wsdl:portType name="TestPortType">
<wsdl:operation name="say">
<wsdl:input name="sayRequest" message="tns:sayRequest">
</wsdl:input>
<wsdl:output name="sayResponse" message="tns:sayResponse">
</wsdl:output>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="TestHttpBinding" type="tns:TestPortType">
<wsdlsoap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="say">
<wsdlsoap:operation soapAction="" />
<wsdl:input name="sayRequest">
<wsdlsoap:body use="literal" />
</wsdl:input>
<wsdl:output name="sayResponse">
<wsdlsoap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="Test">
<wsdl:port name="TestHttpPort" binding="tns:TestHttpBinding">
<wsdlsoap:address
location="http://localhost:8080/xfiretest/services/Test" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
表明你的web service已成功发布。
5)客户端调用
你可以重新新建一个java工程,把(1)中的ITestService接口复制到你的工程中,包括包名。然后新建类WebTest含main方法
如下:
Service srvcModel = new ObjectServiceFactory()
.create(ITestService.class);
XFireProxyFactory factory = new XFireProxyFactory(XFireFactory
.newInstance().getXFire());
String helloWorldURL = "http://192.168.2.99:8080/xfiretest/services/Test";
try {
ITestService srvc = (ITestService) factory.create(
srvcModel, helloWorldURL);
srvc.say();
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
运行,你如看到如下信息:web service调用成功!!!
小弟初写,用词不当,还望指教。
下面有附件可供下载。
分享到:
相关推荐
在"xfire开发Web Service接口第一个程序"这个文件中,你可能会找到一个简单的示例,展示如何创建一个计算两个数相加的Web Service。这个例子可能包括定义服务接口、实现接口、配置服务以及启动服务的步骤。通过分析...
标题中的“xfire开发webservice所需jar包”指的是在使用XFire框架开发Web服务时所需要的一组Java类库。XFire是Apache CXF项目的一部分,它是一个轻量级的、高性能的Web服务框架,用于创建和消费SOAP服务。这篇博客...
XFire是一款Java Web服务开发工具,它简化了SOAP(简单对象访问协议)服务的创建和消费。XFire因其轻量级、高效以及与Spring框架的良好集成而备受青睐。对于初学者来说,理解如何利用XFire来构建服务,特别是像短信...
在IT行业中,Web服务是一种广泛...总的来说,通过这篇博客,我们可以学习到如何使用XFire这一工具来高效地在Java应用中集成和调用Web服务,理解并掌握这些知识点对于任何涉及跨系统交互的Java开发者都是极其重要的。
### xfire+webservice(服务器配置篇) #### 知识点概述 本文档主要介绍了如何在现有的Spring2.5+Hibernate3.2基础上添加XFire来实现WebService服务的配置过程。通过逐步指导的方式,帮助读者了解整个配置流程,并...
Java使用XFire实现Web服务(WebServices)是Java开发中的一种常见技术,它允许应用程序通过网络交换数据。XFire是一个轻量级、高性能的框架,它简化了在Java应用程序中创建和消费Web服务的过程。本篇文章将深入探讨...
【标题】:“xfire发布webservice服务” 在Java开发中,XFire是一个早期流行的Web服务...通过学习这篇博客和分析示例项目,开发者可以快速掌握使用XFire发布Web服务的基本流程,为后续的Web服务开发打下坚实的基础。
本篇将深入探讨XFire Web服务的调用代码及其相关知识点。 一、Web服务基础 Web服务基于开放标准,如SOAP(Simple Object Access Protocol)、WSDL(Web Services Description Language)和UDDI(Universal ...
【描述】:这篇博客文章通过一个实际的案例,探讨了如何将Web服务与Spring框架相结合,使用XFire进行开发。XFire是Spring框架早期用于实现Web服务的一个库,它提供了一种简单而高效的方式来创建和消费SOAP服务。虽然...
2. **第十五章 开发XFire Web Service应用.pdf** - 这是一个PDF文档,很可能详细介绍了如何在MyEclipse中使用XFire开发Web Service的教程,包含了步骤说明、配置指导、可能遇到的问题及解决方案等。 3. **HelloWorld...
本篇文章将深入探讨三个流行的Java Web Service框架:XFire、CXF和Axis,它们都是用于构建和消费Web服务的重要工具。 1. **XFire**: XFire是早期的Web服务实现,它提供了一个轻量级、高性能的框架,支持SOAP 1.1...
标签包括“源码”和“工具”,这暗示了这篇博文可能涉及对XFire的源代码进行解析或介绍基于XFire开发的一些辅助工具。源码分析通常涉及编程语言、设计模式、软件架构、算法等方面的知识,而工具可能涵盖构建系统、...
描述中的链接指向了一篇可能已经失效的博客文章,因此无法直接获取详细信息,但我们可以根据XFire的一般用法进行讲解。XFire简化了在Java应用程序中构建和使用Web服务的过程,特别适合开发SOAP服务。下面我们将详细...
总之,Xfire是学习Web服务的一个良好起点,尤其是对于初学者来说,结合“Web_Service学习手册(Xfire)”和源码,你可以快速建立起Web服务开发的基础。随着对Xfire的深入理解,你还可以进一步探索更高级的特性,如WS-...
本篇内容将聚焦于XFire的基础知识,帮助初学者理解如何使用XFire进行Web服务的开发。 **一、XFire简介** XFire是Java平台上的一款轻量级Web服务实现,它基于Java API for XML Processing (JAXP) 和Java ...
1. **Web服务基础**: Web服务是一种通过网络进行通信的软件系统,遵循W3C制定的SOAP(Simple Object Access Protocol)协议,使用XML(eXtensible Markup Language)作为数据交换格式。它们允许不同的应用程序之间...
本篇文章将详细介绍如何将XFire与Spring进行集成,并通过一个简单的DEMO来演示这一过程。 首先,理解XFire的基本概念。XFire是Apache CXF的前身,它支持SOAP 1.1和1.2协议,提供了一个高效的、基于JAXB的XML编解码...