`
human_zx
  • 浏览: 63638 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

用xfire实现webservice

阅读更多

首先下载xfire包,目前最新的是1.2.6,
下载地址:http://xfire.codehaus.org/Download
一.新建一个web工程,取名为xfire,到入xfire-all-1.2.6.jar和lib下面所需要的包。

 二.

 创建接口类:

package com.zx.ws.test;

public interface TestService {

	public int  add(int p1, int p2);
}

 

创建接口的实现类:

package com.zx.ws.test;

import com.zx.ws.test.TestService;
public class TestServiceImp implements TestService{
	public int add(int p1, int p2)
	{
	return p1 + p2;
	}
}

 三.在META-INF下新建xfire文件夹,创建services.xml文件,配置如下:

<beans xmlns="http://xfire.codehaus.org/config/1.0">
<service>
<name>TestService</name>
<namespace>http://com/zx/ws/test/TestService</namespace>
<serviceClass>com.zx.ws.test.TestService</serviceClass>
<implementationClass>com.zx.ws.test.TestServiceImp</implementationClass>

</service>
</beans>

 

web.xml 配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" 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">
<display-name>webservice</display-name>
<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>

  

启动tomcat,然后在浏览器中输入http://localhost:8080/xfire/services/,如果显示

Available Services:

客户端测试:

首先把xfire工程的打成jar包

新建web动态工程,倒入xfire的包,和刚才的xfire工程的打包。

新建一个测试类,MyClient,代码如下:

package com.zx.ws.test;


import java.net.MalformedURLException; 
import java.rmi.RemoteException;

import org.codehaus.xfire.client.XFireProxyFactory; 
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;
import com.zx.ws.test.TestServiceImp;
import com.zx.ws.test.TestService;
public class MyClient {
	public static void main(String[] args) { 
		try 
		{ 
			
			Service serviceModel = new ObjectServiceFactory() .create(TestService.class, "TestService", "http://com/zx/ws/test/TestService", null);
			TestService service = (TestService) new XFireProxyFactory().create( serviceModel, "http://localhost:8080/xfire/services/TestService");
	//使用 XFire 与 Spring 开发 Web Service 11
	        System.out.println("返回值是"+service.add(12,12));
	} 
		catch (MalformedURLException e) { 
			e.printStackTrace(); 
			} 
} 
		
}

 

 然后运行,如果控制台输出:

返回值是24

则说明客户端成功。

ps:如果出现class path resource [META-INF/xfire/services.xml] cannot be opened because it does not exist

修改方法:把META-INF文件夹copy到工程的build的classes目录下。

分享到:
评论
2 楼 huamin9 2008-12-04  
 
1 楼 huamin9 2008-12-04  
catch (MalformedURLException e) {   
            e.printStackTrace();   
            }    
引用

相关推荐

Global site tag (gtag.js) - Google Analytics