首页 技术 正文
技术 2022年11月12日
0 收藏 917 点赞 2,318 浏览 7782 个字
原生java调用webservice的方法,不用生成客户端代码

2015年10月29日 16:46:59

阅读数:1455

  1. <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>
  1. import java.rmi.RemoteException;
  2. import javax.xml.namespace.QName;
  3. import javax.xml.rpc.ServiceException;
  4. import org.apache.axis.client.Call;
  5. import org.apache.axis.client.Service;
  6. import org.apache.axis.message.SOAPHeaderElement;
  7. import com.kingdee.bos.Context;
  8. import com.kingdee.bos.webservice.login.WSContext;
  9. public class TaskInterUtil
  10. {
  11. public static String getUserCreditFilesData(Context ctx,String userId)
  12. {
  13. try {
  14. Service s = new Service();
  15. Call call = (Call) s.createCall();
  16. call.setOperationName(“login”);
  17. call.setTargetEndpointAddress(“http://10.0.55.5:6888/ormrpc/services/EASLogin?wsdl”);
  18. call.setReturnType(new QName(“urn:client”, “WSContext”));
  19. call.setReturnClass(WSContext.class);
  20. call.setReturnQName(new QName(“”, “loginReturn”));
  21. call.setMaintainSession(true);
  22. String headerValue ;
  23. String headerNamePlace = “http://login.webservice.bos.kingdee.com”;
  24. //                  WSContext result = ((WSContext) call.invoke(new Object[] { “sysWS”,”sysWS”,”eas”,”TESTSSC8″, “l2”,Integer.valueOf(“2″),”BaseDB”}));
  25. WSContext result = ((WSContext) call.invoke(new Object[] { “sysWS”,”sysWS”,”eas”,”TESTSSC8″, “l2”,2}));
  26. String sessionid = result.getSessionId();
  27. System.out.println(sessionid);
  28. call.clearOperation();
  29. //call = (Call)  new Service().createCall();,不能创建一个新的call
  30. call.setOperationName(“getUserCreditFilesData”);
  31. //          call.setOperationName(“createJob”);
  32. call.setMaintainSession(true);
  33. call.setTargetEndpointAddress(“http://10.0.55.5:6888/ormrpc/services/WSTaskInterFacede?wsdl”);
  34. call.addHeader(new SOAPHeaderElement(“http://login.webservice.bos.kingdee.com”,”SessionId”, sessionid));
  35. //          boolean b =(Boolean) call.invoke(new Object[] { “111”});
  36. Object b = call.invoke(new Object[] { “bLXZIU9+SiuLKkJor2m9NhO33n8=”, “”, “”, “”, “”, “”, “”, “10.0.55.5”});
  37. System.out.println(“ssss”);
  38. } catch (ServiceException e) {
  39. e.printStackTrace();
  40. } catch (RemoteException e) {
  41. e.printStackTrace();    }
  42. return “”;
  43. }
  44. }
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();,不能创建一个新的callcall.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.

  1. String result = null;
  2. try {
  3. Properties p = new Properties();
  4. String propertiesUrl = “com/kingdee/eas/fi/gl/client/propertie.properties”;
  5. InputStream ins = VoucherEditUICTEx.class.getClassLoader().getResourceAsStream(propertiesUrl);
  6. p.load(ins);
  7. String showImageUrl = p.getProperty(“showImageUrl”);
  8. //直接引用远程的wsdl文件
  9. //以下都是套路
  10. Service service = new Service();
  11. Call call = (Call) service.createCall();
  12. call.setTargetEndpointAddress(showImageUrl);
  13. call.setOperationName(“imageOutSrv”);//WSDL里面描述的接口名称
  14. call.addParameter(“inJsonString”, org.apache.axis.encoding.XMLType.XSD_DATE, javax.xml.rpc.ParameterMode.IN);//接口的参数
  15. call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//设置返回类型
  16. //          companyNumber = “CWGX001”;
  17. //          voucherPeriod = “2015-08”;
  18. //          voucherTitle = “记字集团”;
  19. //          voucherCode = “WK06-0001”;
  20. String AppID = “EAS701”;
  21. String Provider = “IMSSC”;
  22. StringBuffer param = new StringBuffer();
  23. param.append(”  {                   “);
  24. param.append(”      \”Message\”:{                   “);
  25. param.append(”          \”Header\”:{                    “);
  26. param.append(”              \”AppID\”:\””+AppID+”\”,                    “);
  27. param.append(”              \”Provider\”:\””+Provider+”\”                   “);
  28. param.append(”          },                  “);
  29. param.append(”          \”Body\”:{                  “);
  30. param.append(”              \”ACTION_METHOD\”:\”showImage\”,                    “);
  31. param.append(”              \”PARAMS\”:{                    “);
  32. param.append(”                  \”COMPANY_CODE\”:\””+companyNumber+”\”,                 “);
  33. param.append(”                  \”VOUCHER_PERIOD\”:\””+voucherPeriod+”\”,                   “);
  34. param.append(”                  \”VOUCHER_TITLE\”:\””+voucherTitle+”\”,                 “);
  35. param.append(”                  \”VOUCHER_CODE\”:\””+voucherCode+”\”                    “);
  36. param.append(”              }                   “);
  37. param.append(”          }                   “);
  38. param.append(”      }                   “);
  39. param.append(”  }                   “);
  40. result = (String)call.invoke(new Object[]{param.toString()});
  41. //给方法传递参数,并且调用方法
  42. System.out.println(“result is “+result);
  43. } catch (Exception e1) {
  44. e1.printStackTrace();
  45. MsgBox.showInfo(“EAS核算凭证影像调阅接口调用失败”);
  46. SysUtil.abort();
  47. }
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();
}
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,088
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,565
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,413
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,186
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,822
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,905