springboot 对接sap接口,不生成连接配置文件文件的方法。

springboot 对接sap接口,不生成连接配置文件文件的方法。
网上大部分都是要生成两个连接文件,导致部署的时候,要考虑jar和文件怎么部署,很不方便。本文只记录,不生成连接文件这一种方式。
1 环境的配置
spring boot pom.xml 引入sap连接jar,我使用的是阿里的jar包

 <dependency>
            <groupId>cn.yanzx-dev.gitlab</groupId>
            <artifactId>com.sap.conn.jco.sapjco</artifactId>
            <version>3.0.14</version>
        </dependency>

2 jdk的bin目录,加入sapjco3.dll。这个文件,网上大把,直接搜索下载就可以了。注意版本问题,就可以了。
3 建立SAPConnectionPool.properties 主要用于连接sap的配置
jco.client.lang=zh #语言
jco.destination.peak_limit=150 #最大活动连接数
jco.client.client=001 #客户端编号
jco.client.passwd=password #密码
jco.client.user=username #用户名
jco.client.sysnr=00 #系统编号
jco.destination.pool_capacity=30 #最大空闲连接数
jco.client.ashost=127.0.0.1 #IP
jco.client.msserv=3600 #端口
4 建立连接池工具类SapUtils
public class SapUtils{
// 连接池
public static final String SAP_CONN = “SAP_CONN”; //配置文件名
public static JCoDestination getSAPDestination(){
try {
JCoDestination dest = JCoDestinationManager.getDestination(SAP_CONN);
return dest;
} catch (JCoException ex) {
//重新连接
return RegetJocodestination();
}
}
public static JCoDestination RegetJocodestination(){
try{
Properties properFile = new Properties();
ClassPathResource resource = new ClassPathResource(“SAPConnectionPool.properties”);//注意文件存放路径要写对
InputStream inputStream = resource.getInputStream();
properFile.load(inputStream);
inputStream.close();
CustomDestinationDataProvider provider = new CustomDestinationDataProvider();
provider.addDestinationProperties(SAP_CONN, properFile);
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;
}
}
5 实现jco的DestinationDataProvider接口,目的密文加载SAPConnectionPool.properties 文件内容
public class CustomDestinationDataProvider implements DestinationDataProvider {
private Map providers = new HashMap();
@Override
public Properties getDestinationProperties(String destName) {
if (destName == null||providers.size() == 0)
throw new NullPointerException(“sap配置文件不存在”);
return (Properties)providers.get(destName);
}
// 没有实现事件处理
@Override
public boolean supportsEvents(){
return false;
}
@Override
public void setDestinationDataEventListener(DestinationDataEventListener listener) {
throw new UnsupportedOperationException();
}
public void addDestinationProperties(String destName, Properties provider) {
providers.put(destName, provider);
}
}
到此所有的工具类已经完成
6写个客户端类测试一下demo
public class demo{
public void main(String [] args){
JCoDestination dest = SapUtils.getSAPDestination();
dest.ping();
// JCoDestination 如何使用的方法,非常简单,网上搜索一下就可以。主要步骤,利用JCoDestination 获取JCoFunction,根据JCoFunction 填写入参,调用execute() 执行接口调用,getExportParameterList获取返回值。

}
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值