原生java调用webservice的方法,不用生成客户端代码

2023-06-25,,

原生java调用webservice的方法,不用生成客户端代码

2015年10月29日 16:46:59

阅读数:1455

    <span style="font-family: Arial, Helvetica, sans-serif;">package com.kingdee.eas.cp.trd.webservice.taskinter;</span>
<span style="font-family: Arial, Helvetica, sans-serif;">package com.kingdee.eas.cp.trd.webservice.taskinter;</span>
    import java.rmi.RemoteException;
    import javax.xml.namespace.QName;
    import javax.xml.rpc.ServiceException;
    import org.apache.axis.client.Call;
    import org.apache.axis.client.Service;
    import org.apache.axis.message.SOAPHeaderElement;
    import com.kingdee.bos.Context;
    import com.kingdee.bos.webservice.login.WSContext;
    public class TaskInterUtil
    {
    public static String getUserCreditFilesData(Context ctx,String userId)
    {
    try {
    Service s = new Service();
    Call call = (Call) s.createCall();
    call.setOperationName("login");
    call.setTargetEndpointAddress("http://10.0.55.5:6888/ormrpc/services/EASLogin?wsdl");
    call.setReturnType(new QName("urn:client", "WSContext"));
    call.setReturnClass(WSContext.class);
    call.setReturnQName(new QName("", "loginReturn"));
    call.setMaintainSession(true);
    String headerValue ;
    String headerNamePlace = "http://login.webservice.bos.kingdee.com";
    //                  WSContext result = ((WSContext) call.invoke(new Object[] { "sysWS","sysWS","eas","TESTSSC8", "l2",Integer.valueOf("2"),"BaseDB"}));
    WSContext result = ((WSContext) call.invoke(new Object[] { "sysWS","sysWS","eas","TESTSSC8", "l2",2}));
    String sessionid = result.getSessionId();
    System.out.println(sessionid);
    call.clearOperation();
    //call = (Call)  new Service().createCall();,不能创建一个新的call
    call.setOperationName("getUserCreditFilesData");
    //          call.setOperationName("createJob");
    call.setMaintainSession(true);
    call.setTargetEndpointAddress("http://10.0.55.5:6888/ormrpc/services/WSTaskInterFacede?wsdl");
    call.addHeader(new SOAPHeaderElement("http://login.webservice.bos.kingdee.com","SessionId", sessionid));
    //          boolean b =(Boolean) call.invoke(new Object[] { "111"});
    Object b = call.invoke(new Object[] { "bLXZIU9+SiuLKkJor2m9NhO33n8=", "", "", "", "", "", "", "10.0.55.5"});
    System.out.println("ssss");
    } catch (ServiceException e) {
    e.printStackTrace();
    } catch (RemoteException e) {
    e.printStackTrace();    }
    return "";
    }
    }
import java.rmi.RemoteException;

import javax.xml.namespace.QName;
import javax.xml.rpc.ServiceException; import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.message.SOAPHeaderElement; import com.kingdee.bos.Context;
import com.kingdee.bos.webservice.login.WSContext; public class TaskInterUtil
{
public static String getUserCreditFilesData(Context ctx,String userId)
{
try {
Service s = new Service();
Call call = (Call) s.createCall();
call.setOperationName("login");
call.setTargetEndpointAddress("http://10.0.55.5:6888/ormrpc/services/EASLogin?wsdl");
call.setReturnType(new QName("urn:client", "WSContext"));
call.setReturnClass(WSContext.class);
call.setReturnQName(new QName("", "loginReturn"));
call.setMaintainSession(true);
String headerValue ;
String headerNamePlace = "http://login.webservice.bos.kingdee.com";
// WSContext result = ((WSContext) call.invoke(new Object[] { "sysWS","sysWS","eas","TESTSSC8", "l2",Integer.valueOf("2"),"BaseDB"}));
WSContext result = ((WSContext) call.invoke(new Object[] { "sysWS","sysWS","eas","TESTSSC8", "l2",2}));
String sessionid = result.getSessionId();
System.out.println(sessionid);
call.clearOperation(); //call = (Call) new Service().createCall();,不能创建一个新的call call.setOperationName("getUserCreditFilesData");
// call.setOperationName("createJob");
call.setMaintainSession(true);
call.setTargetEndpointAddress("http://10.0.55.5:6888/ormrpc/services/WSTaskInterFacede?wsdl");
call.addHeader(new SOAPHeaderElement("http://login.webservice.bos.kingdee.com","SessionId", sessionid));
// boolean b =(Boolean) call.invoke(new Object[] { "111"});
Object b = call.invoke(new Object[] { "bLXZIU9+SiuLKkJor2m9NhO33n8=", "", "", "", "", "", "", "10.0.55.5"});
System.out.println("ssss");
} catch (ServiceException e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace(); } return "";
}
}

2.

    String result = null;
    try {
    Properties p = new Properties();
    String propertiesUrl = "com/kingdee/eas/fi/gl/client/propertie.properties";
    InputStream ins = VoucherEditUICTEx.class.getClassLoader().getResourceAsStream(propertiesUrl);
    p.load(ins);
    String showImageUrl = p.getProperty("showImageUrl");
    //直接引用远程的wsdl文件
    //以下都是套路
    Service service = new Service();
    Call call = (Call) service.createCall();
    call.setTargetEndpointAddress(showImageUrl);
    call.setOperationName("imageOutSrv");//WSDL里面描述的接口名称
    call.addParameter("inJsonString", org.apache.axis.encoding.XMLType.XSD_DATE, javax.xml.rpc.ParameterMode.IN);//接口的参数
    call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//设置返回类型
    //          companyNumber = "CWGX001";
    //          voucherPeriod = "2015-08";
    //          voucherTitle = "记字集团";
    //          voucherCode = "WK06-0001";
    String AppID = "EAS701";
    String Provider = "IMSSC";
    StringBuffer param = new StringBuffer();
    param.append("  {                   ");
    param.append("      \"Message\":{                   ");
    param.append("          \"Header\":{                    ");
    param.append("              \"AppID\":\""+AppID+"\",                    ");
    param.append("              \"Provider\":\""+Provider+"\"                   ");
    param.append("          },                  ");
    param.append("          \"Body\":{                  ");
    param.append("              \"ACTION_METHOD\":\"showImage\",                    ");
    param.append("              \"PARAMS\":{                    ");
    param.append("                  \"COMPANY_CODE\":\""+companyNumber+"\",                 ");
    param.append("                  \"VOUCHER_PERIOD\":\""+voucherPeriod+"\",                   ");
    param.append("                  \"VOUCHER_TITLE\":\""+voucherTitle+"\",                 ");
    param.append("                  \"VOUCHER_CODE\":\""+voucherCode+"\"                    ");
    param.append("              }                   ");
    param.append("          }                   ");
    param.append("      }                   ");
    param.append("  }                   ");
    result = (String)call.invoke(new Object[]{param.toString()});
    //给方法传递参数,并且调用方法
    System.out.println("result is "+result);
    } catch (Exception e1) {
    e1.printStackTrace();
    MsgBox.showInfo("EAS核算凭证影像调阅接口调用失败");
    SysUtil.abort();
    }
		String result = null;
try {
Properties p = new Properties();
String propertiesUrl = "com/kingdee/eas/fi/gl/client/propertie.properties";
InputStream ins = VoucherEditUICTEx.class.getClassLoader().getResourceAsStream(propertiesUrl);
p.load(ins); String showImageUrl = p.getProperty("showImageUrl");
//直接引用远程的wsdl文件
//以下都是套路
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(showImageUrl);
call.setOperationName("imageOutSrv");//WSDL里面描述的接口名称
call.addParameter("inJsonString", org.apache.axis.encoding.XMLType.XSD_DATE, javax.xml.rpc.ParameterMode.IN);//接口的参数
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//设置返回类型 // companyNumber = "CWGX001";
// voucherPeriod = "2015-08";
// voucherTitle = "记字集团";
// voucherCode = "WK06-0001"; String AppID = "EAS701";
String Provider = "IMSSC"; StringBuffer param = new StringBuffer();
param.append(" { ");
param.append(" \"Message\":{ ");
param.append(" \"Header\":{ ");
param.append(" \"AppID\":\""+AppID+"\", ");
param.append(" \"Provider\":\""+Provider+"\" ");
param.append(" }, ");
param.append(" \"Body\":{ ");
param.append(" \"ACTION_METHOD\":\"showImage\", ");
param.append(" \"PARAMS\":{ ");
param.append(" \"COMPANY_CODE\":\""+companyNumber+"\", ");
param.append(" \"VOUCHER_PERIOD\":\""+voucherPeriod+"\", ");
param.append(" \"VOUCHER_TITLE\":\""+voucherTitle+"\", ");
param.append(" \"VOUCHER_CODE\":\""+voucherCode+"\" ");
param.append(" } ");
param.append(" } ");
param.append(" } ");
param.append(" } "); result = (String)call.invoke(new Object[]{param.toString()});
//给方法传递参数,并且调用方法
System.out.println("result is "+result);
} catch (Exception e1) {
e1.printStackTrace();
MsgBox.showInfo("EAS核算凭证影像调阅接口调用失败");
SysUtil.abort();
}

原生java调用webservice的方法,不用生成客户端代码的相关教程结束。

《原生java调用webservice的方法,不用生成客户端代码.doc》

下载本文的Word格式文档,以方便收藏与打印。