`
dxm1986
  • 浏览: 435055 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

WebService之XFire简单Demo

阅读更多

XFire是新一代的Java Web服务引擎,XFire使得在JavaEE应用中发布Web服务变得轻而易举。和其他Web服务引擎相比,XFire的配置非常简单,可以非常容易地和Spring集成,它使得Java开发人员终于可以获得和.Net开发人员一样的开发效率。 --摘自百度百科

 

 

服务器端怎么用XFire发布服务?

1 创建web工程

2 将XFire目录下的各种jar包拷贝到web工程的lib下面

3 修改 web.xml 文件,在其中增加如下 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 创建service配制文件:src/META-INF/xfire/services.xml

<beans xmlns="http://xfire.codehaus.org/config/1.0">

	<service>
		<name>
			HelloWorldService
		</name>	
		<namespace>
			http://locahost:8888/xfiredemo/HelloWorldService
		</namespace>
		<serviceClass>
			com.dxm.cyou.xfire.pojo.HelloWorldService
		</serviceClass>
		<implementationClass>
			com.dxm.cyou.xfire.pojo.HelloWorldServiceImpl
		</implementationClass>
	</service>
</beans>

  5 很显然,步骤4之前我创立了一个接口,和一个接口实现类,名字从service.xml中可以看出

6 java文件如下:

com.dxm.cyou.xfire.pojo.HelloWorldService.java

package com.dxm.cyou.xfire.pojo;

public interface HelloWorldService {
	
	public String sayHelloWorld(String name,	Integer size);
	
	
	public Integer add(Integer a,	Integer b);

}

 

   package com.dxm.cyou.xfire.pojo;

public class HelloWorldServiceImpl implements HelloWorldService {

	public String sayHelloWorld(String name,	Integer size) {
		return "Hello World:" + name + "||size:" + size;
	}
	
	public Integer add(Integer a,	Integer b){
		return a + b;
	}
}

 

7 发布Web服务,在浏览器中访问URL:http://localhost:8888/xfiredemo/services/HelloWorldService?wsdl

 

 

得到如下结果:

<wsdl:definitions targetNamespace="http://locahost:8888/xfiredemo/HelloWorldService">

−
<wsdl:types>
−
<xsd:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://locahost:8888/xfiredemo/HelloWorldService">
−
<xsd:element name="sayHelloWorld">
−
<xsd:complexType>
−
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" name="in0" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="1" name="in1" nillable="true" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
−
<xsd:element name="sayHelloWorldResponse">
−
<xsd:complexType>
−
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" name="out" nillable="true" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
−
<wsdl:message name="sayHelloWorldRequest">
<wsdl:part name="parameters" element="tns:sayHelloWorld">
    </wsdl:part>
</wsdl:message>
−
<wsdl:message name="sayHelloWorldResponse">
<wsdl:part name="parameters" element="tns:sayHelloWorldResponse">
    </wsdl:part>
</wsdl:message>
−
<wsdl:portType name="HelloWorldServicePortType">
−
<wsdl:operation name="sayHelloWorld">
<wsdl:input name="sayHelloWorldRequest" message="tns:sayHelloWorldRequest">
    </wsdl:input>
<wsdl:output name="sayHelloWorldResponse" message="tns:sayHelloWorldResponse">
    </wsdl:output>
</wsdl:operation>
</wsdl:portType>
−
<wsdl:binding name="HelloWorldServiceHttpBinding" type="tns:HelloWorldServicePortType">
<wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
−
<wsdl:operation name="sayHelloWorld">
<wsdlsoap:operation soapAction=""/>
−
<wsdl:input name="sayHelloWorldRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
−
<wsdl:output name="sayHelloWorldResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
−
<wsdl:service name="HelloWorldService">
−
<wsdl:port name="HelloWorldServiceHttpPort" binding="tns:HelloWorldServiceHttpBinding">
<wsdlsoap:address location="http://localhost:8888/xfiredemo/services/HelloWorldService"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
 

二,WSDL的基本讲解

 

上面就是一个sayHelloWorld与add两个服务的WSDL,对于上面那段WSDL在这里简单的介绍一下。


从下往上看

1 Service- 相关服务访问点的集合:通过它你可以知道,你将通过哪个URL去访问你需要访问的的服务

元素包含一个或者多个Port元素 

2 Port-每一个Port元素对应一个不同的Web服务,port将一个URL赋予一个特定的binding,通过location实现 可以使两个或者多个port元素将不同的URL赋给相同的binding

3 binding无素:特定端口类型的具体协议和数据格式规范的绑定

4 Message元素描述了Web服务的有效负载。相当于函数调用中的参数和返回值:

5 PortType - 对于某个访问入口点类型所支持的操作的抽象集合,这些操作可以由一个或多个服务访问点来支持。

6 Operation - 对服务中所支持的操作的抽象描述,一般单个Operation描述了一个访问入口的请求/响应消息对。

7 Message - 通信消息的数据结构的抽象类型化定义。使用Types所定义的类型来定义整个消息的数据结构:相当于方法调用的参数与返回值定义

 

8 Types - 数据类型定义的容器,它使用某种类型系统(一般地使用XML Schema中的类型系统)。:从我给出的例子中,你会发现,那些message最终都定义在types中。比如sayHelloWorld 输入两个参数,一个String,一个int,返回String, add服务输入两个int,返回一个int等

 

上面那些WSDL基本元素第一次看不懂,无所谓,你试着去改变你的服务(JAVA),然后再发布,再看相应的WSDL

 

如此重复几次,你就明白了。正所谓书读百遍,其义自现,这样比死记硬背好多了。

 

 

 

三,客户端怎么调用服务

 

用代码说明问题:

com.dxm.cyou.xfire.test.XFireTest.java



package com.dxm.cyou.xfire.test;

import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;

import org.codehaus.xfire.client.Client;

public class XFireTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception{
		// TODO Auto-generated method stub

		XFireTest xFireTest = new XFireTest();
		xFireTest.test();
	}
	
	
	public void test() throws  Exception{
		
		Client client = new Client(new URL("http://localhost:8888/xfiredemo//services/HelloWorldService?wsdl"));
		Object[] results = client.invoke("sayHelloWorld", new Object[] {"邓小明", 100}); 
		System.out.println("results:" + results[0]); 
		
		Object[] results2 = client.invoke("add", new Object[] {100,	200}); 
		System.out.println("results:" + results2[0]); 
	}

}

 

    结果如下:


results:Hello World:邓小明||age:24
100 + 200 : 300

 

That's all

说明一下,今天第一次接触这个东东。以前老师讲过axis2基本全忘记了。
 
1
2
分享到:
评论

相关推荐

    webservice接口xfire开发demo

    demo是一个小的webservice开发,下载下来部署到tomcat下直接运行。 运行地址:http://127.0.0.1:8080/XFireTest/services XFireTest——项目名称

    webservice xfire 的完整的demo例子,下载后即可运行

    1. webservice xfire的完整demo,下载后可以直接导入eclipse调试。 2. 包括客户端和服务端,服务端需要部署到tomcat等web容器,启动服务端后可以通过客户端测试调用结果。 3. 工程已经将依赖的jar包一起包含,不需要...

    java使用XFire调用webService接口

    下面,我们将通过一个简单的例子,展示如何使用 XFire 调用 webService 接口。 服务端(为客户端提供 webservice 接口) 在服务端,我们需要创建一个 web 服务项目,使用 XFire 框架,并配置好 web.xml 文件。然后...

    xfire服务端demo

    2. 注解服务接口:使用Xfire的注解`@WebService`标记接口,以及`@WebMethod`标记服务方法。 3. 创建服务实现:实现`HelloService`接口,提供具体的服务逻辑。 4. 配置Xfire:在Spring配置文件中,使用`&lt;xfire:...

    XFire WebService开发DEMO

    【XFire WebService开发DEMO】是一个用于演示如何利用XFire框架来开发Web服务的实例。Web服务是一种基于网络的、平台无关的软件接口,它允许不同系统间的应用程序进行交互和数据交换。XFire,是Java社区早期的一个...

    xfire的webservice项目demo

    这个"xfire的webservice项目demo"是一个实践性的示例,展示了如何使用Xfire来实现Web服务的服务器端和客户端。 首先,我们要理解Web服务的工作原理。Web服务的基本概念是将业务逻辑封装成一系列可以远程调用的方法...

    Xfire WebServcie demo以及所有jar

    Xfire WebServcie demo以及所有jar.

    XFire demo

    XFire 是一个基于 Java 的开源 Web 服务框架,它为开发人员提供了一种简单、高效的方式来创建和部署 Web 服务。在本项目中,我们有一个使用 JDK 1.7 实现的 Maven 项目,它展示了如何使用 XFire 进行基本操作。XFire...

    使用xfire框架搭建webService的一个demo

    在IT行业中,Web服务是一种允许不同应用程序之间进行通信的技术,而`xfire`是一个流行的Java框架,用于构建和消费Web服务。本示例将详细解释如何利用xfire框架搭建一个包含SOAP Header身份验证和WS-Security身份验证...

    xfire webservice 上传下载源码

    **XFire Webservice 上传下载源码详解** XFire 是一款强大的Java Web服务框架,它为开发者提供了构建高质量、高性能的Web服务的工具。在"xfire webservice 上传下载源码"这个主题中,我们将深入探讨如何使用XFire来...

    webservice xfire spring2.0完整实例

    - `xfire126Demo`可能包含了服务端和客户端的代码。服务端启动后,会监听特定端口提供Web服务,客户端则根据服务地址进行调用。 - 在服务端,我们需要确保Spring配置正确并启动了Web服务。在客户端,通过代理或...

    webservice xfire整合spring(webservice配置采用注解)例子

    【标题】中的“webservice xfire整合spring(webservice配置采用注解)”是指将Xfire,一个早期的Web服务框架,与Spring框架结合使用,其中Web服务的配置通过Spring的注解方式进行。这种方式简化了配置,提高了开发...

    WebService XFire

    【WebService XFire】是基于Java的Web服务框架,它允许开发者快速、轻松地创建和部署SOAP(简单对象访问协议)服务。XFire是Apache CXF的前身,它提供了丰富的API和工具,使得Web服务的开发过程更为简洁。这篇博客...

    xfire的简单实例

    在这个示例中,我们将创建一个简单的Web服务,名为xfire126Demo。首先,我们需要在项目中引入xfire的相关依赖。接着,定义一个Java类,比如`HelloWorldService`,其中包含一个公共方法,如`sayHello()`,返回一个...

    使用xfire创建webservice极简demo

    在这个极简的XFire Web服务Demo中,我们将探讨如何利用XFire来创建服务端以及客户端调用这些服务。 **一、XFire简介** XFire是Java平台上的一个Web服务实现,它支持SOAP、WSDL和UDDI等标准。XFire通过简化编程模型...

    XFire 架构的 WebService 开发

    在提供的"Demo"压缩包中,可能包含了一个简单的XFire WebService开发示例。这个示例可能包括服务接口、实现类、配置文件和客户端调用代码。通过分析这些文件,你可以更直观地了解XFire的工作原理和使用方式。 五、...

    webservice---xfire和spring整合

    XFire是Java平台上的一款轻量级Web服务框架,它提供了简单、高性能的方式来创建和消费Web服务。Spring则是一个广泛使用的Java企业级应用开发框架,提供了一整套的依赖注入和面向切面编程解决方案。当XFire与Spring...

    Java Web Service xFire Demo项目,带所有的包,完美运行

    xFire是早期的一个流行的Java Web Service框架,它简化了SOAP(简单对象访问协议)服务的创建、发布和消费过程。本项目“Java Web Service xFire Demo”是一个完整的示例,用于演示如何在Java环境中使用xFire实现Web...

    Java使用XFire调用WebService接口.docx编程资料

    2. **填写基本信息**:填写项目名称(如:Demo),选择XFire作为WebService框架,然后一路点击“Next”直至完成。 ##### 3.2 配置web.xml 创建完成后,会自动生成一个`web.xml`文件,该文件中包含了XFire的相关配置...

Global site tag (gtag.js) - Google Analytics