[BTS]Java调用.net webservice


当前项目要求使用java调用.net webservice。

在网上search不到太多相关的资源,只能自己慢慢试了。

经过长达一周的联调,终于实现。

Java Client
import javax.xml.namespace.QName;   
import javax.xml.rpc.ParameterMode;
import org.apache.axis.client.Call;    
import org.apache.axis.client.Service;  


System.out.println(
"测试SOAP开始");

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

String input
="Yes";

String endpoint
="http://11.11.11.11/CAIE.EAI/UploadExpenseToConstract.asmx";
call.setTargetEndpointAddress(
new java.net.URL(endpoint));
call.setOperationName(
new QName("http://CAIE.EAI.ExpenseConstract.WebServices","ReturnYourInput"));
call.addParameter(
"input", org.apache.axis.encoding.XMLType.XSD_STRING,ParameterMode.IN);
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);
call.setUseSOAPAction(
true);
call.setSOAPActionURI(
"http://CAIE.EAI.ExpenseConstract.WebServices/ReturnYourInput");
String res 
= (String) call.invoke(new Object[] {input});
System.out.println(
"返回值="+res);
System.out.println(
"测试SOAP结束");   


.Net WebService

using System;
using System.Data;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Web.Services.Description;
using System.ComponentModel;

namespace CAIE.EAI.ExpenseConstract.WebServices
{
    
/// <summary>
    
/// UploadExpenseToConstract 的摘要说明
    
/// </summary>
    [WebService(Namespace = "http://CAIE.EAI.ExpenseConstract.WebServices/")]
    [WebServiceBinding(ConformsTo 
= WsiProfiles.BasicProfile1_1)]
    [ToolboxItem(
false)]
    
public class UploadExpenseToConstract : System.Web.Services.WebService
    {

        [WebMethod()]
        [SoapRpcMethod(Use 
= SoapBindingUse.Literal, RequestNamespace = "http://CAIE.EAI.ExpenseConstract.WebServices", ResponseNamespace = "http://CAIE.EAI.ExpenseConstract.WebServices")]
        
public string ReturnYourInput(string input)
        {
            
string a = input;
            System.IO.File.AppendAllText(
@"c:\temp.log""Input=" + input + "\r\n");
            
return a;
        }

    }
}

Java 调用 .net 主要是为了后序的 Java 启动 BizTalk流程做准备。
原文地址:https://www.cnblogs.com/xuzhong/p/1203939.html