原生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();,不能创建一个新的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.

  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();
}

原生java调用webservice的方法,不用生成客户端代码的更多相关文章

  1. Java调用webservice接口方法

                             java调用webservice接口   webservice的 发布一般都是使用WSDL(web service descriptive langu ...

  2. java 使用CXF将wsdl文件生成客户端代码命令java调用第三方的webservice应用实例

    1.先下载cxf包https://download.csdn.net/download/suizhikuo/108112362.解压缩包,通过cmd命令进入到bin目录下(cd cxf\bin的路径) ...

  3. Java调用webservice接口方法(SOAP message、xfire、axis)

    webservice的 发布一般都是使用WSDL(web service descriptive language)文件的样式来发布的,在WSDL文件里面,包含这个webservice暴露在外面可供使 ...

  4. wsdl 生成 java 代码 java 使用CXF将wsdl文件生成客户端代码命令java调用第三方的webservice应用实例 推荐使用, 并且设置了 utf8

    推荐使用, 并且设置了 utf8 wsdl2java -p cn.smborderservice  -encoding utf-8 -d f:\logink\src -all -autoNameRes ...

  5. 【转】java调用webservice

    互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他网站的内容信息集成到我们的Web应用中显示,下面就以获取天气预报数据和查询国内手机号码归属地为 ...

  6. java 调用webservice的各种方法总结

    java 调用webservice的各种方法总结 几种流行的开源WebService框架Axis1,Axis2,Xfire,CXF,JWS比较 方法一:创建基于JAX-WS的webservice(包括 ...

  7. Java调用WebService方法总结(9,end)--Http方式调用WebService

    Http方式调用WebService,直接发送soap消息到服务端,然后自己解析服务端返回的结果,这种方式比较简单粗暴,也很好用:soap消息可以通过SoapUI来生成,也很方便.文中所使用到的软件版 ...

  8. Java调用WebService方法总结(7)--CXF调用WebService

    CXF = Celtix + XFire,继承了Celtix和XFire两大开源项目的精华,是一个开源的,全功能的,容易使用的WebService框架.文中所使用到的软件版本:Java 1.8.0_1 ...

  9. Java调用WebService方法总结(5)--Axis2调用WebService

    Axis2是新一点Axis,基于新的体系结构进行了全新编写,有更强的灵活性并可扩展到新的体系结构.文中demo所使用到的软件版本:Java 1.8.0_191.Axis2 1.7.9. 1.准备 参考 ...

随机推荐

  1. OpenDaylight虚拟租户网络(VTN)详解及开发环境搭建

    一.VTN简介及架构分析:   具体详见开发人员指南wiki:https://wiki.opendaylight.org/view/Release/Lithium/VTN/developer_Guid ...

  2. Hive和SparkSQL: 基于 Hadoop 的数据仓库工具

    Hive: 基于 Hadoop 的数据仓库工具 前言 Hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的 SQL 查询功能,将类 SQL 语句转 ...

  3. 用java实现一个简易编译器-语法解析

    语法和解析树: 举个例子看看,语法解析的过程.句子:“我看到刘德华唱歌”.在计算机里,怎么用程序解析它呢.从语法上看,句子的组成是由主语,动词,和谓语从句组成,主语是“我”,动词是“看见”, 谓语从句 ...

  4. 从weblogic的一个教训

    部署后一定要检查解压后的文件是否修改了.常常出现部署中存在缓存的情况. weblogic8.1可能出现没有删除缓存情况.血的教训.

  5. "setItem@[native code] logging run flush"

    safari 中出现 "setItem@[native code] logging run flush" 此问题出现在 6s plus ios系统为10.2 时, safari打开 ...

  6. Node.js处理I/O数据之Buffer模块缓冲数据

    一.前传 在之前做web时也经常用到js对象转json和json转js对象.既然是Node.js处理I/O数据,也把这个记下来. Json转Js对象:JSON.parse(jsonstr); //可以 ...

  7. mybatis使用拦截器显示sql,使用druid配置连接信息

    1.显示出sql内容: 新建2个类:MybatisInterceptor :拦截sql,并获得输出sql内容 package com.cpp.core.filter; import java.text ...

  8. Spring boot --- Spring Oauth(一)

       文章部分图片来自参考资料,这篇文章主要讲 spring security  oauth 概述 上一篇我们学习了 SS 中重要的工作原理和几个大概的认证和授权过程.而 spring securit ...

  9. 悟空模式-java设计模式

    目前已定义的java设计模式细分下来有二十余种,这篇博客主要是想从大家所熟知的孙悟空入手,阐述各个设计模式的概念和优缺点,以及他们之间的联系. 在下面介绍的每个设计模式里,都会有与西游记相关的具体案例 ...

  10. IDEA 的 properties 文件的属性字段如何链接到调用的文件

    想要达到的效果: ctrl + 鼠标点击:弹出如下所有使用的文件 问题: 有些 IDEA 使用 ctrl + 鼠标点击不能看到使用的文件. 解决办法: ctrl + 鼠标点击,然后选择设置按钮 然后 ...