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 则不能添加SOAPAction
- call.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());
- }
- }
-
-
-
- }
测试运行
