用Java调用C# 的WebService接口 下载本文

内容发布更新时间 : 2024/11/17 1:33:24星期一 下面是文章的全部内容请认真阅读。

用Java调用C# 的WebService接口

这是一个用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 = \http://www.tangs.com/Add \, RequestNamespace = \

http://www.tangs.com/T

\

, ResponseNamespace

=

\

http://www.tangs.com/T

\= 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

\= SoapBindingUse.Literal)]

[WebMethod]

public String HelloWorld() ... {

return \ } } ...

Java调用这个Webservice中的Add方法和HelloWorld方法: 1.有参方法:Add

public static void addTest() { try ... { Integer i = 1 ; Integer j = 2 ;

// WebService URL

String service_url = \

Service service = new Service(); Call call = (Call) service.createCall();

call.setTargetEndpointAddress( new java.net.URL(service_url));

// 设置要调用的方法

call.setOperationName( new QName( \\

// 该方法需要的参数

call.addParameter( \ javax.xml.rpc.ParameterMode.IN);

call.addParameter( \ javax.xml.rpc.ParameterMode.IN);

// 方法的返回值类型

call.setReturnType(org.apache.axis.encoding.XMLType.XSD_INT);

call.setUseSOAPAction( true );

call.setSOAPActionURI( \

// 调用该方法

Integer res = (Integer)call.invoke( new Object[] ... { i, j } );

System.out.println( \\ + res.toString());

} catch (Exception e) ... { System.err.println(e); } }

...

运行,结果返回:Result:3 2.无参方法:HelloWorld

public static void helloTest() { try ... {

String endpoint = \ Service service = new Service(); Call call = (Call) service.createCall();