代码实现如下,从上到下依次调用,直到被获取连接为止。

JCOProvider类似注册中心,注册连接信息。

如有问题请参考:

如何使用JCO3.0同时访问多个SAP系统

SAP接口编程 之 JCo3.0系列(04) : 会话管理

package pmo.basiset.web.customer;import java.util.HashMap;
import java.util.Map;
import java.util.Properties;import com.sap.conn.jco.ext.DestinationDataEventListener;
import com.sap.conn.jco.ext.DestinationDataProvider;public class JCOProvider implements DestinationDataProvider {private Map providers = new HashMap();@Overridepublic Properties getDestinationProperties(String destName) {if (destName == null)throw new NullPointerException("请指定目的名称");if (providers.size() == 0)throw new IllegalStateException("请加入一个目的连接参数属性给提供者");return (Properties)providers.get(destName);}// 没有实现事件处理@Overridepublic boolean supportsEvents(){return false;}@Overridepublic void setDestinationDataEventListener(DestinationDataEventListener listener) {throw new UnsupportedOperationException();}public void addDestinationProperties(String destName, Properties provider) {providers.put(destName, provider);}
}
package pmo.modules.cost.web.cntc.web.materialtract;import java.io.BufferedReader;
import java.io.FileReader;
import java.util.Properties;import org.springframework.stereotype.Service;import pmo.basiset.web.customer.JCOProvider;import com.pm360.epip.base.context.Context;
import com.sap.conn.jco.JCoDestination;
import com.sap.conn.jco.JCoDestinationManager;
import com.sap.conn.jco.JCoException;
import com.sap.conn.jco.ext.Environment;@Service("SAPConnectionPool")
public class SAPConnectionPool {private static final String SAP_MATER_CONN="SAP_CONN";public static JCoDestination getSAPDestination(){try {JCoDestination dest = JCoDestinationManager.getDestination(SAP_CONN);return dest;} catch (JCoException ex) {return RegetJocodestination();}           }/*** 重新获取JCODestination* @return*/public static JCoDestination RegetJocodestination(){try{System.out.println("开始读取properties文件!!!");Properties connectProperties = new Properties();//获取配置文件系统路径解析String filePath = Context.ROOT_DISK+"//WEB-INF//xxx.properties";BufferedReader bufferedReader = new BufferedReader(new FileReader(filePath));if(bufferedReader != null){connectProperties.load(bufferedReader);}System.out.println("properties信息="+connectProperties+"!!!");JCOProvider provider = new JCOProvider();provider.addDestinationProperties(SAP_MATER_CONN, connectProperties);Environment.registerDestinationDataProvider(provider);try {JCoDestination dest = JCoDestinationManager.getDestination(SAP_CONN);return dest;} catch (JCoException ex) {System.out.println(ex);System.out.println("重新连接失败");}           }catch(Exception e){e.printStackTrace();}return null;        }
}
private List<Map<String,Object>> querySapMaterialTractGridData(boolean result,Map<String,Object> whereMap,String user) throws ServiceBussiException {List<Map<String,Object>> retList = new ArrayList<Map<String,Object>>();try {System.out.println("开始获取sap连接!!!");JCoDestination dest = SAPConnectionPool.getSAPDestination();//获取连接dest.ping();if(Validator.isEmpty(dest)){result = false;throw new ServiceBussiException("sap通道连接失败!");}System.out.print("获取连接成功!!!");} catch (JCoException e) {result = false;throw new ServiceBussiException("sap通信失败!");}}

如何使用JCO3.0同时访问多个SAP系统相关推荐

  1. 解决重启VCSA 6.0,访问vsphere web client提示:503 Service Unavailable错误

    解决重启VCSA 6.0,访问vsphere web client提示:503 Service Unavailable错误 https://www.pianshen.com/article/93205 ...

  2. SAP接口编程 之 JCo3.0系列:Table参数

    Table参数作为export parameter BAPI_COMPANYCODE_GETDETAIL是一个适合演示的函数,没有import paramter参数,调用后COMPANYCODE_GE ...

  3. Java(JCo3)与SAP系统相互调用

    Java(JCo3)与SAP系统相互调用 外部系统(Java)调用BAPI函数 安装JCo3 创建JCo3连接 直连 连接池 DestinationDataProvider接口(不需连接属性配置文件) ...

  4. win7系统开机出现OEM7GRUB 0.4.4提示无法进入系统的原因及两种解决方法

    source:http://www.jb51.net/os/windows/475464.html win7系统开机出现OEM7GRUB 0.4.4提示无法进入系统的原因及两种解决方法 作者:佚名 字 ...

  5. 内网穿透之使用神卓互联V8.5.9客户端访问用友ERP系统

    由于工作原因平时经常帮客户安装神卓互联系列软件,最近神卓互联官方发布了内网穿透私有云V8.5.9版本的客户端,界面变化还是比较大的,从以前黑色变成了白色,按钮和布局也发送了改变,有必要写一篇记录一下, ...

  6. SpringBoot开发案例从0到1构建分布式秒杀系统

    前言 最近,被推送了不少秒杀架构的文章,忙里偷闲自己也总结了一下互联网平台秒杀架构设计,当然也借鉴了不少同学的思路.俗话说,脱离案例讲架构都是耍流氓,最终使用SpringBoot模拟实现了部分秒杀场景 ...

  7. 实战总结:我是怎么从0到1做后台业务系统的?

    本文由作者 无人知晓 发布于社区 前言 从0到1设计一套系统,是一个产品经理成长的必经之路.在过去几年中,我积累了很多企业内部业务系统从0-1的经验,本文重点将其进行抽象总结,并总结那些掉进去的坑和是 ...

  8. 小微企业名录查询系统_欢迎访问辽宁小微企业名录系统

    欢迎访问辽宁小微企业名录系统 http://xwqy.lngs.gov.cn 辽宁小微企业名录系统是小微企业扶持政策的实施公示台.集装箱,通过访问该系统网站,及时全面知晓小微企业复工复产." ...

  9. 升级鸿蒙系统如何退出,华为鸿蒙2.0系统升级了怎么退回EMUI11系统-操作教程详解...

    华为鸿蒙2.0系统升级了怎么退回EMUI11系统?很多用户升级了又不知道如何才能退回到原来的系统,下面就让老铁下载小编为大家带来,2.0系统升级退回EMUI11系统操作教程详解. 这次开启华为鸿蒙2. ...

最新文章

  1. 深度学习--TensorFlow(4)BP神经网络(损失函数、梯度下降、常用激活函数、梯度消失梯度爆炸)
  2. Java 正则表达式验证小结
  3. 通用AI——未来真正强健的人工智能?
  4. zabbix在windows服务器下监控
  5. VTK:Texture之TexturedSphere
  6. 15行代码让苹果设备崩溃,最新的iOS 12也无法幸免
  7. 用GNS3做PIX防火墙ICMP实验
  8. 《HTML、CSS、JavaScript 网页制作从入门到精通》——第6章 使用表格
  9. Visual Studio 2008 每日提示(十)
  10. pytorch utils.data.DataLoader
  11. 我见过不少赚了钱,投资孵化一堆店铺的,一般而言后续发展都会出问题的
  12. 使用Attribute简单地扩展WebForm
  13. 二级c语言编程修改out文件夹,国家二级计算机c语言考试 程序设计题最后一题 怎么改out.dat文件 直接在文件里面给出答案...
  14. 将文件下载到谷歌云盘 google driver
  15. gf(2 4)有限域的乘法c语言实现,有限域GF(2^n)的C语言实现浅析
  16. 一卡通管理系统需求分析
  17. pert图java_项目管理之甘特图和工程网络图(PERT图)(一)
  18. QT实现记事本代码(版本三)
  19. python定义整型数组_Python数组定义方法
  20. sUploadDir

热门文章

  1. 基于JAVA体育城场地预定系统后台计算机毕业设计源码+数据库+lw文档+系统+部署
  2. android怎么用edittext得到日期_minon蜜浓保湿乳液怎么用批号看生产日期?minon蜜浓保湿乳液保质期有多长时间?...
  3. [机缘参悟-34]:光锥之内皆命运
  4. JAVA 处理百万或者千万数据的方法
  5. 视频存储价格高昂_避免5个最常见(且代价高昂)的错误,这些错误肯定会导致游戏出轨...
  6. 关于京牌“以家庭为单位摇号”“京牌可以继承”的不合理性分析
  7. idea中Toggle Offline Mode是什么意思
  8. 在Unity3D中使用精灵动画引擎制作动画的两种方法
  9. 浙江大学计算机学院保研率,浙江大学2020届保研率25.9%,主要保研本校、复旦、交大、北大...
  10. Cg Programming/Unity/Lighting Textured Surfaces光照纹理表面