做一个c#的webservice服务接口
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
这是一个用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 = " / " )]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Service : System.Web.Services.WebService
{
public Service () ... {
// 如果使用设计的组件,请取消注释以下行
// InitializeComponent();
}
[SoapRpcMethod(Action = " /Add " , RequestNamespace = " /T " , ResponseNamespace = " /T " ,
Use = SoapBindingUse.Literal)]
[WebMethod]
public int Add( int a, int b)
... {
return a + b;
}
[SoapRpcMethod(Action = " /Hello " , RequestNamespace = " /T " , ResponseNamespace = " /T " ,
Use = SoapBindingUse.Literal)]
[WebMethod]
public String HelloWorld()
... {
return " Hello, world! " ;
}
}
...
Java调用这个Webservice中的Add方法和HelloWorld方法:
1.有参方法:Add
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 .URL(service_url));
// 设置要调用的方法
call.setOperationName( new QName( " /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( " /Add " );
// 调用该方法
Integer res = (Integer)call.invoke(
new Object[] ... {
i, j
}
);
System.out.println( " Result: " + res.toString());
} catch (Exception e) ... {
System.err.println(e);
}
} ...
运行,结果返回:Result:3
2.无参方法:HelloWorld
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 .URL(endpoint));
call.setOperationName( new QName( " /T " , " HelloWorld " ));
call.setUseSOAPAction( true );
call.setSOAPActionURI( " /Hello " );
String res = (String)call.invoke(
new Object[] ... {
null
}