eclipse下如何建Web Services以及在项目中的调用方法 (例子)
2013-03-04 17:30
183 查看
1 建web services:
在eclipse下建一个java project,class CalculateService,代码如下,
public class CalculateService {
public float plus(float x, float y){
return x+y;
}
public float minus(float x, float y){
return x-y;
}
public float multiply(float x, float y){
return x*y;
}
public float divide(float x, float y){
return x/y;
}
}
选中项目,new-->Web Services。。。(具体内容可以参考网上资料,用的是axis2的创建方式)
创建好了之后,启动tomcat,你会发现有一条链接:http://localhost:8080/WebServiceProject/services/CalculateService?wsdl
这个链接就是你Web Services的地址。
2 调用Web Services(这是最简单的例子,大家可以根据具体的需求去编写)
在部署的另一个项目里,创建class Run,需要的jar文件:axis 和 axis2(需要的可以留邮箱问我要,也可以百度搜索下载)
以下代码的功能是 调用Web Services里的plus方法,输出结果3.0
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
import org.apache.axiom.soap.SOAP12Constants;
import org.apache.axis2.Constants;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
public class Run {
EndpointReference targetEPR = new EndpointReference(
"http://localhost:8080/WebServiceProject/services/CalculateService?wsdl");
public void getWeb() {
try {
OMFactory fac = OMAbstractFactory.getOMFactory();
OMNamespace omNs = fac.createOMNamespace(
"http://ws.apache.org/axis2", "getData");// 命名空间
// OMElement method = fac.createOMElement("methodname", omNs);//
// 方法名称
// 请求参数设置
Options options = new Options();
options.setTo(targetEPR);// 设定webservice地址
options.setTransportInProtocol(Constants.TRANSPORT_HTTP);// 设定传输协议
options.setSoapVersionURI(SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI);// 设定SOAP版本soap1.2
// 客户端绑定参数设置
ServiceClient sender = new ServiceClient();
sender.setOptions(options);
// 设定访问的接口方法
OMElement method2 = fac.createOMElement("plus", omNs);// 要调用的接口方法名称
OMElement value1 = fac.createOMElement("x", omNs);// 方法的第一个参数名称
value1.addChild(fac.createOMText(value1, "1"));// 设定参数的值
OMElement value2 = fac.createOMElement("y", omNs);// 方法的第二个参数名称
value2.addChild(fac.createOMText(value2, "2"));// 设定参数的值
method2.addChild(value1);// 方法设置参数
method2.addChild(value2);// 方法设置参数
// 设定其他方法参数,针对参数是数组的情况如何处理?可以考虑为参数添加child,
// ............
OMElement result = sender.sendReceive(method2);// 调用接口方法
System.out.println(result);// 打印接口返回结果
Pattern pattern1 = Pattern.compile("<.+?>", Pattern.DOTALL);
Matcher matcher1 = pattern1.matcher(result.toString());
String string = matcher1.replaceAll("");
System.out.println(string);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
Run r = new Run();
r.getWeb();
}
}
需要的大家可以参考下,有好的方法也可以一起讨论,有空再研究不同语言调用,希望能够大家多多支持,谢谢!
在eclipse下建一个java project,class CalculateService,代码如下,
public class CalculateService {
public float plus(float x, float y){
return x+y;
}
public float minus(float x, float y){
return x-y;
}
public float multiply(float x, float y){
return x*y;
}
public float divide(float x, float y){
return x/y;
}
}
选中项目,new-->Web Services。。。(具体内容可以参考网上资料,用的是axis2的创建方式)
创建好了之后,启动tomcat,你会发现有一条链接:http://localhost:8080/WebServiceProject/services/CalculateService?wsdl
这个链接就是你Web Services的地址。
2 调用Web Services(这是最简单的例子,大家可以根据具体的需求去编写)
在部署的另一个项目里,创建class Run,需要的jar文件:axis 和 axis2(需要的可以留邮箱问我要,也可以百度搜索下载)
以下代码的功能是 调用Web Services里的plus方法,输出结果3.0
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
import org.apache.axiom.soap.SOAP12Constants;
import org.apache.axis2.Constants;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
public class Run {
EndpointReference targetEPR = new EndpointReference(
"http://localhost:8080/WebServiceProject/services/CalculateService?wsdl");
public void getWeb() {
try {
OMFactory fac = OMAbstractFactory.getOMFactory();
OMNamespace omNs = fac.createOMNamespace(
"http://ws.apache.org/axis2", "getData");// 命名空间
// OMElement method = fac.createOMElement("methodname", omNs);//
// 方法名称
// 请求参数设置
Options options = new Options();
options.setTo(targetEPR);// 设定webservice地址
options.setTransportInProtocol(Constants.TRANSPORT_HTTP);// 设定传输协议
options.setSoapVersionURI(SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI);// 设定SOAP版本soap1.2
// 客户端绑定参数设置
ServiceClient sender = new ServiceClient();
sender.setOptions(options);
// 设定访问的接口方法
OMElement method2 = fac.createOMElement("plus", omNs);// 要调用的接口方法名称
OMElement value1 = fac.createOMElement("x", omNs);// 方法的第一个参数名称
value1.addChild(fac.createOMText(value1, "1"));// 设定参数的值
OMElement value2 = fac.createOMElement("y", omNs);// 方法的第二个参数名称
value2.addChild(fac.createOMText(value2, "2"));// 设定参数的值
method2.addChild(value1);// 方法设置参数
method2.addChild(value2);// 方法设置参数
// 设定其他方法参数,针对参数是数组的情况如何处理?可以考虑为参数添加child,
// ............
OMElement result = sender.sendReceive(method2);// 调用接口方法
System.out.println(result);// 打印接口返回结果
Pattern pattern1 = Pattern.compile("<.+?>", Pattern.DOTALL);
Matcher matcher1 = pattern1.matcher(result.toString());
String string = matcher1.replaceAll("");
System.out.println(string);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
Run r = new Run();
r.getWeb();
}
}
需要的大家可以参考下,有好的方法也可以一起讨论,有空再研究不同语言调用,希望能够大家多多支持,谢谢!
相关文章推荐
- 【Android学习笔记】如何使用Eclipse在Android项目中调用C/C++代码,及遇到的错误解决方法
- Eclipse 项目转 android studio 编译apk太大原因分析,以及解决方法
- 一个java程序/项目检测工具.方法是否被调用以及频率
- shareSDK分享平台分享内容出去显示“来自XXX”的问题及其如何修改分享菜单的背景图片以及调用无UI方法自定义UI分享
- HttpClient跨项目(服务端)调用方法例子
- 如何动态调用DLL中类的方法以及属性
- 如何修改分享菜单的背景图片以及调用无UI方法自定义UI分享
- vue组件之间的通信以及如何在父组件中调用子组件的方法和属性
- Eclipse中如何clean项目以及clean的作用
- Eclipse根据wsdl文件自动生成webservice client图解,以及调用示例,附测试项目
- Eclipse中如何查看方法被哪些代码调用
- 如何动态调用DLL中类的方法以及属性
- 如何动态调用DLL中类的方法以及属性 (转载)
- [置顶] 【Asp.net】前台的Html控件向后台传值以及前台的html的input按钮如何调用后台的方法
- 开发项目时,提示 找不到类的解决方法,以及如何设置编译源目录
- 【IDE】Eclipse中的workspace & workingset 如何更好的搭配使用,以及本地项目文件夹的分类
- 如何在Eclipse下查看JDK源代码以及java源代码阅读方法
- eclipse 中main()函数中的String[] args如何使用?通过String[] args验证账号密码的登录类?静态的主方法怎样才能调用非static的方法——通过生成对象?在类中制作一个方法——能够修改对象的属性值?
- 如何在Eclipse下查看JDK源代码以及java源代码阅读方法
- jQuery Ajax 方法调用 Asp.Net WebService 以及调用aspx.cs中方法的详细例子