Java SOAP 调用 C# 的WebService,C# 的WebService方法的创建可以参考上一篇文章。IntelliJ IDEA Community Edition 2021.2.3的idea64.exe新建项目,导入需要的jar,代码如下:
import org.apache.axis.client.Service;
import org.apache.axis.soap.SOAPConstants;
import javax.xml.namespace.QName;
import java.net.URL;public class Longteng {public static void main(String[] args) {TestWebserviceHelloWorld3();}public static void TestWebserviceHelloWorld3() {try {//String url = "http://localhost:8012/WebService1.asmx";//String namespace = "http://tempuri.org/";Service service = new Service();Call call=(Call)(new Service()).createCall();call.setTargetEndpointAddress(new URL("http://localhost:8012/WebService1.asmx"));call.setOperationName(new QName("http://tempuri.org/","HelloWorld3"));call.setTimeout(30000);call.setUseSOAPAction(true);call.setSOAPVersion(SOAPConstants.SOAP11_CONSTANTS);//解决 提示System.Web.Services.Protocols.SoapException: 服务器未能识别 HTTP 头 SOAPAction 的值: 。的错误问题// SOAP 1.1 必须添加SOAPAction,SOAP 1.2 则不能添加SOAPActioncall.setSOAPActionURI("http://tempuri.org/HelloWorld3");String re=(String)call.invoke(new String[]{"1","pass"});System.out.println(re);//Call call=(Call)(new Service()).createCall();//call.setTargetEndpointAddress(new URL("http://127.0.0.1:7001/hnCardService/services/CardService"));//call.setOperationName(new QName("http://ws.apache.org/axis2","getCard"));//call.setTimeout(30000);//String re=(String)call.invoke(new String[]{"user","pass","F20000015","420503198104191819","周玉磊","440200"});//System.out.println(re);} catch (Exception e) {System.err.println(e.toString());}}}
测试运行