如何使用JCO3.0同时访问多个SAP系统
代码实现如下,从上到下依次调用,直到被获取连接为止。
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系统相关推荐
- 解决重启VCSA 6.0,访问vsphere web client提示:503 Service Unavailable错误
解决重启VCSA 6.0,访问vsphere web client提示:503 Service Unavailable错误 https://www.pianshen.com/article/93205 ...
- SAP接口编程 之 JCo3.0系列:Table参数
Table参数作为export parameter BAPI_COMPANYCODE_GETDETAIL是一个适合演示的函数,没有import paramter参数,调用后COMPANYCODE_GE ...
- Java(JCo3)与SAP系统相互调用
Java(JCo3)与SAP系统相互调用 外部系统(Java)调用BAPI函数 安装JCo3 创建JCo3连接 直连 连接池 DestinationDataProvider接口(不需连接属性配置文件) ...
- win7系统开机出现OEM7GRUB 0.4.4提示无法进入系统的原因及两种解决方法
source:http://www.jb51.net/os/windows/475464.html win7系统开机出现OEM7GRUB 0.4.4提示无法进入系统的原因及两种解决方法 作者:佚名 字 ...
- 内网穿透之使用神卓互联V8.5.9客户端访问用友ERP系统
由于工作原因平时经常帮客户安装神卓互联系列软件,最近神卓互联官方发布了内网穿透私有云V8.5.9版本的客户端,界面变化还是比较大的,从以前黑色变成了白色,按钮和布局也发送了改变,有必要写一篇记录一下, ...
- SpringBoot开发案例从0到1构建分布式秒杀系统
前言 最近,被推送了不少秒杀架构的文章,忙里偷闲自己也总结了一下互联网平台秒杀架构设计,当然也借鉴了不少同学的思路.俗话说,脱离案例讲架构都是耍流氓,最终使用SpringBoot模拟实现了部分秒杀场景 ...
- 实战总结:我是怎么从0到1做后台业务系统的?
本文由作者 无人知晓 发布于社区 前言 从0到1设计一套系统,是一个产品经理成长的必经之路.在过去几年中,我积累了很多企业内部业务系统从0-1的经验,本文重点将其进行抽象总结,并总结那些掉进去的坑和是 ...
- 小微企业名录查询系统_欢迎访问辽宁小微企业名录系统
欢迎访问辽宁小微企业名录系统 http://xwqy.lngs.gov.cn 辽宁小微企业名录系统是小微企业扶持政策的实施公示台.集装箱,通过访问该系统网站,及时全面知晓小微企业复工复产." ...
- 升级鸿蒙系统如何退出,华为鸿蒙2.0系统升级了怎么退回EMUI11系统-操作教程详解...
华为鸿蒙2.0系统升级了怎么退回EMUI11系统?很多用户升级了又不知道如何才能退回到原来的系统,下面就让老铁下载小编为大家带来,2.0系统升级退回EMUI11系统操作教程详解. 这次开启华为鸿蒙2. ...
最新文章
- 深度学习--TensorFlow(4)BP神经网络(损失函数、梯度下降、常用激活函数、梯度消失梯度爆炸)
- Java 正则表达式验证小结
- 通用AI——未来真正强健的人工智能?
- zabbix在windows服务器下监控
- VTK:Texture之TexturedSphere
- 15行代码让苹果设备崩溃,最新的iOS 12也无法幸免
- 用GNS3做PIX防火墙ICMP实验
- 《HTML、CSS、JavaScript 网页制作从入门到精通》——第6章 使用表格
- Visual Studio 2008 每日提示(十)
- pytorch utils.data.DataLoader
- 我见过不少赚了钱,投资孵化一堆店铺的,一般而言后续发展都会出问题的
- 使用Attribute简单地扩展WebForm
- 二级c语言编程修改out文件夹,国家二级计算机c语言考试 程序设计题最后一题 怎么改out.dat文件 直接在文件里面给出答案...
- 将文件下载到谷歌云盘 google driver
- gf(2 4)有限域的乘法c语言实现,有限域GF(2^n)的C语言实现浅析
- 一卡通管理系统需求分析
- pert图java_项目管理之甘特图和工程网络图(PERT图)(一)
- QT实现记事本代码(版本三)
- python定义整型数组_Python数组定义方法
- sUploadDir
热门文章
- 基于JAVA体育城场地预定系统后台计算机毕业设计源码+数据库+lw文档+系统+部署
- android怎么用edittext得到日期_minon蜜浓保湿乳液怎么用批号看生产日期?minon蜜浓保湿乳液保质期有多长时间?...
- [机缘参悟-34]:光锥之内皆命运
- JAVA 处理百万或者千万数据的方法
- 视频存储价格高昂_避免5个最常见(且代价高昂)的错误,这些错误肯定会导致游戏出轨...
- 关于京牌“以家庭为单位摇号”“京牌可以继承”的不合理性分析
- idea中Toggle Offline Mode是什么意思
- 在Unity3D中使用精灵动画引擎制作动画的两种方法
- 浙江大学计算机学院保研率,浙江大学2020届保研率25.9%,主要保研本校、复旦、交大、北大...
- Cg Programming/Unity/Lighting Textured Surfaces光照纹理表面