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流程做准备。

你可能感兴趣的:(webservice)