Java调用基于.Net的WebService

经过封装过的:

public class DotNetWebService_Caller {
 static Logger log = Logger.getLogger(DotNetWebService_Caller.class);
 public static Object getInstance(String service_url, String namespace,
   String dotNetMethodName, Object inputObj, Object outputObj) throws RemoteException{
  Object resultObj = null;

  // 创建WebService调用
  Service service = new Service();
  Call call = null;
  
  try {
   call = (Call) service.createCall();
   call.setTargetEndpointAddress(new URL(service_url));
  } catch (MalformedURLException e) {
   log.info("与基于DotNet的webService的URL建立连接时,出异常!",e);
   e.printStackTrace();
  } catch (ServiceException e1) {
   log.info("调用DotNet的webservice时,createCall()出异常!",e1);
   e1.printStackTrace();
  }
  
  // 设置调用的方法
  OperationDesc oper = new OperationDesc();
  oper.setName(dotNetMethodName);
  ParameterDesc param = new ParameterDesc(new QName(namespace,
    dotNetMethodName), ParameterDesc.IN, new QName(namespace,
    dotNetMethodName), inputObj.getClass(), false, false);
  oper.addParameter(param);
  // --设置返回类型--开始--
  oper.setReturnType(new QName(namespace, outputObj.getClass()
    .getSimpleName()));
  oper.setReturnClass(outputObj.getClass());
  oper.setReturnQName(new QName(namespace, outputObj.getClass()
    .getSimpleName()));
  oper.setStyle(Style.DOCUMENT);
  oper.setUse(Use.LITERAL);
  // --设置返回类型--结束--

  call.setOperation(oper);
  // 设置方法名
  call.setOperationName(new QName(namespace, dotNetMethodName));
  // 设置call的其他属性
  call.setUseSOAPAction(true);
  call.setSOAPActionURI(namespace + dotNetMethodName);
  call.setEncodingStyle(null);
  call.setProperty(Call.SEND_TYPE_ATTR, Boolean.FALSE);
  call.setProperty(AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
  call.setSOAPVersion(SOAPConstants.SOAP11_CONSTANTS);

  /*
   * // 设置方法的输入参数 GetReceiptShowMsg parameters = new GetReceiptShowMsg();
   * parameters.setMobileOAEmailAddress(MobileOAEmailAddress);
   * parameters.setPageNum(pageNum); parameters.setItemNum(itemNum);
   * parameters.setSelField(selField);
   */

  // 调用方法
  //System.out.println("inputObj:="+inputObj);
  
  resultObj = call.invoke(new Object[] { inputObj });
  //System.gc();
  return resultObj;
 }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值