WebService 调用.net 和 java
?
import javax.crypto.Cipher;import javax.crypto.SecretKey;import javax.crypto.SecretKeyFactory;import javax.crypto.spec.DESKeySpec;import javax.crypto.spec.IvParameterSpec;import javax.xml.namespace.QName;import javax.xml.rpc.ParameterMode;import org.apache.axis.client.Call;import org.apache.axis.client.Service;import org.apache.axis.encoding.XMLType;--------Service service=new Service(); Call call=(Call)service.createCall(); call.setTargetEndpointAddress(new java.net.URL(url)); //调用.NET写的WebService时,与调用JAVA写的WebService要多一些代码。 //第一步,增加如下两行代码。 call.setUseSOAPAction(true); call.setSOAPActionURI(namespace + "getFileInfo");//URI格式:命名空间+方法名 //第二步,设置方法名时,不能只用一个字符串(调JAVA用法),而要用QName,并且构造QName时一定要加上命名空间 call.setOperationName(new QName(namespace,"getFileInfo")); //第三步,需要传递参数时,一定要写上参数的变量名称,也是用带命名空间的QName表示。加了参数后要设置返回类型(可能只是axis)。 call.addParameter(new QName(namespace,"sUserName"),XMLType.XSD_STRING, ParameterMode.IN); call.addParameter(new QName(namespace,"sPassword"),XMLType.XSD_STRING, ParameterMode.IN); call.addParameter(new QName(namespace,"sGIID"),XMLType.XSD_STRING, ParameterMode.IN); call.addParameter(new QName(namespace,"sToken"),XMLType.XSD_STRING, ParameterMode.IN); call.setReturnType(XMLType.XSD_STRING); Object result = call.invoke(new Object[] {sUserName,sPassword,sGIID,sToken}); return result.toString();//-java----------------------------public static void main(String[] args) { try { String endpoint = "http://localhost:8080/axis2/Hello.jws?wsdl"; Service service = new Service(); Call call = (Call) service.createCall(); call.setTargetEndpointAddress(new java.net.URL(endpoint)); call.setOperationName(new QName("urn:ActionWebService", "getName")); String ret = (String) call.invoke(new Object[] { "a" }); System.out.println("result is: " + ret); } catch (Exception e) { e.printStackTrace(); } }?
?
?
?
?
?
?
?
?
?
?
?