用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();