这是一个用java的调用c#版的webservice接口的例子:
c#接口:
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!"; }}...
登录后复制
Java的调用这个web服务中的添加方法和HelloWorld的方法:
1,有参方法:添加
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); } }...
登录后复制
运行,结果返回:结果:3
2.无参方法:的HelloWorld
立即学习“Java免费学习笔记(深入)”;
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()); } }...
登录后复制
可以看到,调用无参的web服务和有参的基本相同,不过无参调用时,不需要调用呼叫的addParameter方法和setReturnType方法
执行查询查询结果报道查看:你好,世界!
附件在为Web服务依赖的JAR包
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2554234.html