MULE 连接sap rfc接口开发一:jco连接

来源:互联网 发布:用sql语句创建数据库 编辑:程序博客网 时间:2024/05/16 01:20

本篇文章主要介绍JCO连接sap rfc接口的连接类。

参考地址:http://www.cnblogs.com/jiangzhengjun/p/4291479.html

项目lib添加:windows运行环境需添加:sapjco3.dll

linux运行环境需添加:libsapjco3.so

buildpath: sapjco3.jar


import java.io.File;  import java.io.FileOutputStream;  import java.util.Properties;    //import org.apache.log4j.Logger;  import com.sap.conn.jco.JCoDestination;  import com.sap.conn.jco.JCoDestinationManager;  import com.sap.conn.jco.JCoException;  import com.sap.conn.jco.ext.DestinationDataProvider;    public class SAPConn {      private static final String ABAP_AS_POOLED = "ABAP_AS_WITH_POOL";      static{          Properties connectProperties = new Properties();          connectProperties.setProperty(DestinationDataProvider.JCO_ASHOST, "172.xx.xx.xx");//服务器          connectProperties.setProperty(DestinationDataProvider.JCO_SYSNR,  "00");        //系统编号          connectProperties.setProperty(DestinationDataProvider.JCO_CLIENT, "800");       //SAP集团          connectProperties.setProperty(DestinationDataProvider.JCO_USER,   "xxx");  //SAP用户名          connectProperties.setProperty(DestinationDataProvider.JCO_PASSWD, "xxx");     //密码          connectProperties.setProperty(DestinationDataProvider.JCO_LANG,   "ZH");        //登录语言                 //JCo连接到SAP服务器有两种方法,分别是直连和通过连接池进行连接。其差别在于,打开直连连接后可以一直保持连接;连接池则是在需要时才建立连接,连接暂不需要时,将被释放回连接池,再分配给其他用户使用。在网络服务器应用程序里,一般采用连接池进行连接SAP服务器。        connectProperties.setProperty(DestinationDataProvider.JCO_POOL_CAPACITY, "3");  //最大连接数            connectProperties.setProperty(DestinationDataProvider.JCO_PEAK_LIMIT, "10");     //最大连接线程  //                  createDataFile(ABAP_AS_POOLED, "jcoDestination", connectProperties);      }            /**      * 创建SAP接口属性文件。      * @param name  ABAP管道名称      * @param suffix    属性文件后缀      * @param properties    属性文件内容      */      private static void createDataFile(String name, String suffix, Properties properties){          File cfg = new File(name+"."+suffix);          if(cfg.exists()){              cfg.deleteOnExit();          }          try{              FileOutputStream fos = new FileOutputStream(cfg, false);              properties.store(fos, "for tests only !");              fos.close();          }catch (Exception e){           //   log.error("Create Data file fault, error msg: " + e.toString());              throw new RuntimeException("Unable to create the destination file " + cfg.getName(), e);          }      }            /**      * 获取SAP连接      * @return  SAP连接对象      */      public static JCoDestination connect(){          JCoDestination destination =null;          try {              destination = JCoDestinationManager.getDestination(ABAP_AS_POOLED);          } catch (JCoException e) {             // log.error("Connect SAP fault, error msg: " + e.toString());         throw new RuntimeException("Unable to create the destination file ", e);         }          return destination;      }     // private static Logger log = Logger.getLogger(SAPConn.class); // 初始化日志对象  }  
下一篇日志我们将介绍如何用jco来连接sap rfc接口,

并提供一种统一的模板来对不同的sap接口进行调用。

1 0
原创粉丝点击