XFire创建WebService实例

XFire创建WebService实例应用

XFire使得在JavaEE应用中发布Web服务变得轻而易举。和其他Web服务引擎相比,

XFire的配置非常简单,可以非常容易地和Spring集成。

下载地址:http://xfire.codehaus.org/Download

一. 使用XFire发布WebService

   1. 创建service接口

    package com.test.service;
    import com.test.service.bean.User;

    public interface IHelloService {
    	public String sayHello(String name);
    	public User  getUser(User user);
   	}
   }

2.创建Service接口的实现类

package com.test.service;
import com.test.service.bean.User;
public class HelloService implements IHelloService{
	public String sayHello(String name){
		return "Hello, "+name;
	}
	public User getUser(User user) {
		User userNew = new User();
		userNew.setId("new:"+user.getId());
		userNew.setName("new:"+user.getName());
		return userNew;
	}
}
   package com.test.service.bean;
   public class User {
   	private String id;
   	private String name;
   	public String getId() {
   		return id;
   	}
   	public void setId(String id) {
   		this.id = id;
   	}
   	public String getName() {
   		return name;
   	}
   	public void setName(String name) {
   		this.name = name;
   	}
   }

 

3.在web.xml文件中进行XFire拦截配置,可参照官网提供的sample。

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<servlet>
	<servlet-name>XFireServlet</servlet-name>
	<servlet-class>
		org.codehaus.xfire.transport.http.XFireConfigurableServlet
	</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>

 4.在class目录下建立META-INF目录,如(META-INF>xifre->services.xml),

在services.xml文件中进行webservice服务的发布,可参照官网提供的sample。 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xfire.codehaus.org/config/1.0">
<service>
	<name>HelloService</name>
	<serviceClass>com.test.service.IHelloService</serviceClass>
	<implementationClass>com.test.service.HelloService</implementationClass>
</service>
</beans>

5.将xfire的Jar包和相关依赖包拷到系统应用中,在Tomcat下部署应用。

   启动tomcat后访问服务(需在应用后加上/services,webservice才会进行拦截):

例:http://localhost:8080/ws2/services。(IE下有时无法显示列表,可用其它浏览器显示或指定接口名称)

界面如下:

点击后查看详细的wsdl文档,不同的浏览器下访问会有区别,展示效果不一致。

   二.建立XFire客户端进行调用

1.本地客户端调用,与webservice服务在同一应用。

package com.test.client;

import java.net.MalformedURLException;
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.test.service.IHelloService;
import com.test.service.bean.User;

public class ClientTest {
	public static void main(String args[]) throws MalformedURLException {
		Service service = new ObjectServiceFactory().create(IHelloService.class);
		XFireProxyFactory factory = new XFireProxyFactory(XFireFactory
				.newInstance().getXFire());
		String url = "http://localhost:8080/ws2/services/HelloService";
		IHelloService helloService = (IHelloService) factory.create(service,url);
		System.out.println(helloService.sayHello("张三"));
		User user = new User();
		user.setName("张三");
		System.out.println(helloService.getUser(user).getName());
	}
}

执行结果如下:

Hello, 张三
new:张三

2. 利用XFire创建build.xml文件生成客户端代码调用webservice服务

  

2.1在src目录下创建build.properties文件,配置如下:

src.dir=${basedir}
lib.dir=D:/myspace/ws2/WebRoot/WEB-INF/lib
wsdl.dir=http\://localhost\:8080/ws2/services/HelloService?wsdl

2.2在src目录下创建build.xml文件,配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<project name="WebService" basedir="." default="gen-webservice">
	<property file="build.properties"></property>
	<path id="project-classpath">
		<fileset dir="${lib.dir}">
			<include name="**/*.jar" />
		</fileset>
	</path>

	<target name="gen-webservice">
		<taskdef name="wsgen" classname="org.codehaus.xfire.gen.WsGenTask"
											 classpathref="project-classpath" />
		<wsgen outputDirectory="${src.dir}"  wsdl="${wsdl.dir}"
				    package="stub.test.client" overwrite="true"/>
	</target>
</project>

用ant构建生成代码,生成后的目录如下:

2.3编写客户端代码进行调用

package com.test.client;
import stub.test.client.HelloServiceClient;
import stub.test.client.HelloServicePortType;
import com.test.service.bean.ObjectFactory;
import com.test.service.bean.User;

public class HelloServiceTest {

	public static void main(String args[]){
		HelloServiceClient service = new HelloServiceClient();
		HelloServicePortType portType = service.getHelloServiceHttpPort();
		System.out.println(portType.sayHello("张三"));

		ObjectFactory factory = new ObjectFactory();
		User user = factory.createUser();
		user.setName(factory.createUserName("张三"));
		System.out.println(portType.getUser(user).getName().getValue());
	}
}

执行结果如下:

Hello, 张三
new:张三

XFire创建WebService实例,布布扣,bubuko.com

时间: 2024-12-19 16:37:24

XFire创建WebService实例的相关文章

MyEclipse下XFire开发Webservice实例

XFire Java SOAP框架概述 (摘自:http://tech.it168.com/j/e/2006-10-28/200610281432707.shtml )     MyEclipse Web Services是建立在XFire Java SOAP框架和工具基础上的, XFire是一款开源的Java SOAP框架.它拥有一个轻量级的信息处理模块,通过STAX来与SOAP信息相结合.提供了一个工作在Web Services下的简单API,支持POJO和schema开发. XFire支持

XFire创建WebService服务端和客户端

感谢这篇博客http://clq9761.iteye.com/blog/1261963的分享. 可能是环境搭建的原因,按照资料有些地方没有成功,于是自己改了一部分,写了下面的demo 1.服务端 1.1.新建web工程,复制需要的jar包到lib文件夹 1.2.web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/

Axis2创建WebService实例

  一.Axis2的下载和安装 1.可从http://ws.apache.org/axis2/ 下载Axis2的最新版本:      可以下载如下两个zip包:      axis2-1.5.4-bin.zip      axis2-1.5.4-war.zip      其中 axis2-1.5.4-bin.zip文件中包含了Axis2中所有的jar文件,       axis2-1.5.4-war.zip文件用于将WebService发布到Web容器中. 2.将axis2-1.5.4-war.

Spring集成XFire的WebService实例

废话不说,直接来源码 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:schemaLocatio

如何使用C#创建WebService

使用C#创建WebService,服务端的webservice是必须,中间的soap,Xml我们不用去关心.下面是使用C#创建WebService的简单介绍. AD:51CTO技术沙龙 | 赋予APP不同凡响的交互和体验>> C#学习到一定程度会涉及到C#创建WebService的一些高阶知识,本文试图对此做一个简单的介绍. 假设A是客户端,B是webservice服务端,用户通过http协议向服务器发送soap请求,webservice返回客户端Xml格式的数据. 现在我们看一看创建一个C#

一个php创建webservice,并通过c#调用的真实实例

最近需要用php创建webservice供C#和JAVA来调用,通过3天的搜索和尝试,终于成功在C#下调用,JAVA的调用还没开始,为防止忘记,在这里记录下来全过程. 本文参考了许多文章,文中也采用了其中的示例. 本文目录如下 一.php创建webservice 二.生成.wsdl文件 三.c#调用php的webservice 一.php创建webservice 1.php环境 我用的是windows的apache,php.ini文件中 extension=php_soap.dll 去掉注释即可

Java中WebService实例

Web Services是由企业公布的完毕其特定商务需求的在线应用服务,其它公司或应用软件可以通过Internet来訪问并使用这项在线服务. Web Service的关键技术和规则: 1.XML:描写叙述数据的标准方法. 2.SOAP:表示信息交换的协议(简单对象訪问协议). 3.WSDL:Web服务描写叙述语言. 4.UDDI:通用描写叙述.发现与集成,他是一种独立于平台,基于XML语言的用于在互联网上描写叙述商务的协议. 一.利用JDK web服务api实现,这里使用基于SOAP messa

java webservice实例教程

原文:java webservice实例教程 源代码下载地址:http://www.zuidaima.com/share/1590350954564608.htm 最近在学习web services,网上先关的资料不多,讲的都是很基础,例子也很简单,自己动手敲了敲在这里和大家分享一下,希望能对初学者有所帮助. Web Services服务器端开发 服务器端开发用的是XFire,版本是1.2.6,XFire现在已经成apache下面的一个项目CXF的一部分了,老早就不更新版本了,XFire过不过时

CXF创建webservice客户端和服务端

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本人声明.否则将追究法律责任. 作者: 永恒の_☆ 地址: http://blog.csdn.net/chenghui0317/article/details/9320053 一.CXF的介绍 Apache CXF是一个开源的WebService框架,CXF大大简化了Webservice的创建,同时它继承了XFire的传统,一样可以和spring天然的进行无缝的集成.CXF框架是一种基于servlet技术的SOA应用开发