eclipse下用xfire开发web service
来源:互联网 发布:java调用js 返回值 编辑:程序博客网 时间:2024/05/20 16:41
使用XFIRE开发一个web service的实例
环境:Eclipse3.2+tomcat6.0+JDK1.6
xfire版本:xifre-1.2.6
1.准备工作
准备XFire所需要的jar包
方法1:在http://xfire.codehaus.org/下载xfire1.2.6-.zip压缩包,解压后lib下jar包
方法2:将myeclipse的安装目录下:
.......\myeclipse\eclipse\plugins\com.genuitec.eclipse.ws.xfire_5.1.0\data\1.2\lib的所有jar包
2.建工程
新建tomcat工程,命名为xfire。
目录结构
3.导入jar包
将xfire所需要的包copy到工程的lib目录下并导入(导入过程点工程右键,在java buildpath里)
4.更新web.xm文件
<?xmlversion="1.0"encoding="UTF-8"?>
<web-appid="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/j2eehttp://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>xfire</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<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>
web.xml中添加的servlet映射表明,所有匹配“/services/*”的url请求全部交给org.codehaus.xfire.transport.http.XFireConfigurableServlet来处理。
5.制作服务
这里以一个简单的为例:如果name参数为null,返回“Hello guest”,否则返回“Hello 'name'”
5.1新建一个接口HelloService,放在包com.lip.service下:
package com.lip.service;
publicinterface HelloService {
public StringsayHello(String name);
}
5.2做接口HelloService的实现类HelloServiceImpl,放在包com.lip.service.impl下:
package com.lip.service.impl;
import com.lip.service.HelloService;
publicclass HelloServiceImplimplements HelloService {
public String sayHello(String name) {
if (null == name) {
return"Hello guest!";
}else {
return"Hello "+name;
}
}
}
6.发布服务
在WEB-INF/src文件夹下,建立META-INF/xfire/services.xml文件。在WebContent\META-INF目录下新建xfire文件夹,然后在xfire目录下添加一个XFire使用的配置文件services.xml,该配置文件中的内容反映了要将哪些java类发布为web服务。本例中的services.xml内容如下: services.xml文件内容为:
<?xmlversion="1.0"encoding="UTF-8"?>
<beansxmlns="http://xfire.codehaus.org/config/1.0">
<service>
<name>HelloService</name>
<namespace>
http://www.57market.com.cn/HelloService
</namespace>
<serviceClass>
com.lip.service.HelloService
</serviceClass>
<implementationClass>
com.lip.service.impl.HelloServiceImpl
</implementationClass>
</service>
</beans>
7查看服务
打开浏览器,访问http://localhost:8080/xfire/services/HelloService?wsdl
会得到HelloService这个服务的WSDL文档,可以保留这个WSDL文档以备用。
新建一个客户端访问类MathServiceClient:
package com.yao.xfire.client; import java.net.MalformedURLException; import org.codehaus.xfire.XFireFactory;import org.codehaus.xfire.client.Client;import org.codehaus.xfire.client.XFireProxyFactory;import org.codehaus.xfire.service.Service;import org.codehaus.xfire.service.binding.ObjectServiceFactory;import org.codehaus.xfire.transport.http.CommonsHttpMessageSender; import com.yao.xfire.service.MathService; public class MathServiceClient { private static MathService mathService; private MathServiceClient(){} public static MathService getMathService(String serviceUrl) throws MalformedURLException{ if(mathService == null){ //创建服务 Service srvcModel = new ObjectServiceFactory().create(MathService.class); //创建XFire对象 XFireProxyFactory factory = new XFireProxyFactory(XFireFactory.newInstance().getXFire()); //调用Web服务 mathService = (MathService) factory.create(srvcModel, serviceUrl); //设置客户端调用的属性 Client client = Client.getInstance(mathService); client.setProperty(CommonsHttpMessageSender.HTTP_TIMEOUT, "300"); client.setProperty(CommonsHttpMessageSender.DISABLE_KEEP_ALIVE, "true"); client.setProperty(CommonsHttpMessageSender.DISABLE_EXPECT_CONTINUE, "true"); //如果需要设置代理 //client.setProperty(CommonsHttpMessageSender.HTTP_PROXY_HOST, "10.3.1.6" ); //client.setProperty(CommonsHttpMessageSender.HTTP_PROXY_PORT, "8080"); } return mathService; } public static void main(String[] args) throws MalformedURLException{ MathService service = MathServiceClient.getMathService("http://localhost:8080/xfireDemo/services/MathService"); int result = service.add(1, 14); System.out.println("get the result: " + result); }} 将得到结果:get the result: 15。
8.补充
下载xfire1.2.6-.zip,解压后的,xfire-all-1.2.6.jar放在lib下,导入后重新启动tomcat。
访问http://localhost:8080/xfire/services,得到以下结果,点击[wsdl]的链接,可以得到与7一样的结果。
9.保存WSDL
至此,我们利用XFIRE已经发布了一个web service服务的接口。
这个接口的描述就是这个XML格式的WSDL文件。其他应用程序可以根据这个文档编写他们的调用程序来调用我们提供的服务。
- eclipse下用xfire开发web service
- XFire初识-使用Eclipse开发Web Service
- MyEclipse下开发Web Service(XFire)
- 基于Eclipse开发Web Service(XFire+Axis)
- Spring+XFire开发[web service]
- XFire开发Web Service 实例
- MyEclipse XFire开发web service
- MyEclipse XFire开发web service
- xfire--开发WEB SERVICE的又一利器
- XFire:轻松简单地开发Web Service
- 基于xfire的web service开发例子
- WEB SERVICE PROJECT实例(XFire、接口开发)
- 用xfire做web service 简要说明
- xfire-web service -client
- xfire建立 Web Service
- Web Service之XFire
- 用eclipse europa开发web service服务
- myeclipse下使用xfire创建web service入门实例
- structs2的web.xml和struct.xml两个配置文件的配置
- 原码、补码和反码
- 输入子系统(一)
- DDRMC 系列总结(1) //有待丰富
- jdk1.6的版本与下载地址
- eclipse下用xfire开发web service
- Junit 4 和 TestNG对比
- Html5 缓存策略简介
- 打擂台算法
- UVA - 1592 Database map+pair
- Java求字符串数组交集 并集 差集 去重复并集
- TIPTOP ERP 常用SQL总结
- UVa536 Tree Recovery
- quick cocos2dx学习记录