用的Java调用WebService的

巴扎黑
发布: 2016-12-19 16:50:36
原创
1448人浏览过

这是一个用java的调用c#版的webservice接口的例子:
c#接口:

<span style="font-size: 11px;">
using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Web.Services.Description;
[WebService(Namespace = "http://www.tangs.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Service : System.Web.Services.WebService
{
public Service () ...{
//如果使用设计的组件,请取消注释以下行 
//InitializeComponent(); 
}
 [SoapRpcMethod(Action = "http://www.tangs.com/Add", RequestNamespace = "http://www.tangs.com/T", ResponseNamespace = "http://www.tangs.com/T", Use = SoapBindingUse.Literal)]
 [WebMethod]
public int Add(int a, int b)
...{
return a + b;
 }
 [SoapRpcMethod(Action = "http://www.tangs.com/Hello", RequestNamespace = "http://www.tangs.com/T", ResponseNamespace = "http://www.tangs.com/T", Use = SoapBindingUse.Literal)]
 [WebMethod]
public String HelloWorld()
...{
return "Hello, world!";
 }
}
...</span>
登录后复制

Java的调用这个web服务中的添加方法和HelloWorld的方法:

1,有参方法:添加

<span style="font-size: 11px;">
public static void addTest() {
try ...{
 Integer i = 1;
 Integer j = 2;
//WebService URL
 String service_url = "http://localhost:4079/ws/Service.asmx";
 Service service = new Service();
 Call call = (Call) service.createCall();
 call.setTargetEndpointAddress(new java.net.URL(service_url));
//设置要调用的方法
call.setOperationName(new QName("http://www.tangs.com/T", "Add"));
//该方法需要的参数
call.addParameter("a", org.apache.axis.encoding.XMLType.XSD_INT,
 javax.xml.rpc.ParameterMode.IN);
 call.addParameter("b", org.apache.axis.encoding.XMLType.XSD_INT,
 javax.xml.rpc.ParameterMode.IN);
//方法的返回值类型
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_INT);
 call.setUseSOAPAction(true);
 call.setSOAPActionURI("http://www.tangs.com/Add");
//调用该方法
Integer res = (Integer)call.invoke(
new Object[]...{
 i, j
 }
 );
 System.out.println( "Result: " + res.toString());
 } catch (Exception e) ...{
 System.err.println(e);
 }
 }...
</span>
登录后复制

运行,结果返回:结果:3 

2.无参方法:的HelloWorld

立即学习Java免费学习笔记(深入)”;

<span style="font-size: 11px;">
public static void helloTest() {
try ...{
 String endpoint = "http://localhost:4079/ws/Service.asmx";
 Service service = new Service();
 Call call = (Call) service.createCall();
 call.setTargetEndpointAddress(new java.net.URL(endpoint));
 call.setOperationName(new QName("http://www.tangs.com/T", "HelloWorld"));
 call.setUseSOAPAction(true);
 call.setSOAPActionURI("http://www.tangs.com/Hello");
 String res = (String)call.invoke(
new Object[]...{
null
 }
 );
 System.out.println( "Result: " + res);
 } catch (Exception e) ...{
 System.err.println(e.toString());
 }
 }...
</span>
登录后复制

可以看到,调用无参的web服务和有参的基本相同,不过无参调用时,不需要调用呼叫的addParameter方法和setReturnType方法
执行查询查询结果报道查看:你好,世界!

附件在为Web服务依赖的JAR包

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号