xfire 1.2 实现webservice完整流程
1.打开 myeclipse 60 点击 file -->new -->web service project
Project name 为 xfirewebservice --》 finash
2.src目录下创建 包和相应的 java文件 如下所示:MathService.java
/**
*
*/
package com.test.ws;
/**
* @author Administrator
*implements IMath
*/
public class MathService {
public long add(int p1, int p2) {
return p1 + p2;
}
public long minus(int p3, int p4) {
// TODO Auto-generated method stub
return p3 -p4;
}
}
3. 修改 WebServices 文件夹下的 services.xml文件 ,内容如下:
服务名称MathService url :http://localhost:8080/WebserviceTest/MathService
完成服务的 类 <serviceclass>com.test.ws.MathService</serviceclass>
将 WebserviceTest 替换为自己的 项目名称
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://xfire.codehaus.org/config/1.0"><service><name>MathService</name><namespace>
http://localhost:8080/WebserviceTest/MathService
</namespace><serviceclass>com.test.ws.MathService</serviceclass></service></beans>
4. 部署 webservice
在浏览器 输入 http://localhost:8080/WebserviceTest/services/
出现如下提示 :
Available Services:
MathService [wsdl]
Generated by XFire ( http://xfire.codehaus.org )
表示 服务 启动成功, 至此 服务部署完成
测试 服务 :
项目中 需要引入 commons-httpclient-3.0.1.jar包 拷贝至 webroot下的 web-inf目录下的 lib目录中 即可
1. 编写 接口文件
package com.webservice.client;
public interface IMath {
long add(int p1,int p2);
long minus(int p3,int p4 );
}
2. 编写调用 文件
/**
*
*/
package com.webservice.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;
/**
* @author Administrator
*
*/
public class Client {
public static void main(String[] args) {
// TODO 自动生成方法存根
Service srvcModel = new ObjectServiceFactory().create(IMath.class);
XFireProxyFactory factory = new XFireProxyFactory(XFireFactory
.newInstance().getXFire());
String helloWorldURL = "http://localhost:8080/WebserviceTest/services/MathService";
try {
//接口文件 说明有 哪些函数 可以用, helloWorldURL 提示 服务在哪里
IMath srvc = (IMath) factory.create(srvcModel, helloWorldURL);
// srvc.add(124, 456);
System.out.println("调用函数 add得到结果 :" + srvc.add(1516, 1515));
System.out.println("调用函数 minus得到结果 :" + srvc.minus(1516, 1515));
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
}
测试结果如下 :
调用函数 add得到结果 :3031
调用函数 minus得到结果 :1