使用 JCo,您可以轻松建立连接,就像 JCo 库附带的示例表中所解释的那样。不幸的是,构建连接的唯一方法是使用创建的属性文件来处理。如果其中没有任何有意义的数据,情况也不会那么糟糕。但至少 SAP 用户的密码存在于文件中,因此这种连接处理方式缺乏安全性。 JCo的手册也是这么说的:
For this example the destination configuration is stored in a file that is called by the program. In practice you should avoid this for security reasons.
但终究找不到可行的解决方案。关于这个主题有很多帖子,比如
http://forums.sdn.sap.com/thread.jspa?messageID=7303957
但它们都没有帮助。我真的想不出解决办法,也找不到。实际上,我通过在建立连接后删除文件来解决安全问题,但这不是一个令人满意的解决方案。有一个更好的方法来获取连接参数,特别是当它出现在手册中时,但我不知道如何。
有人已经使用过 JCo 3.0 并且知道这个问题吗?
最佳答案
是的,这是可能的。您必须创建自己的 DestinationDataProvider 实现并使用 Environment.registerDestinationDataProvider() 注册它。但是,您的 DDP 获取连接数据和凭据取决于您。看看net.sf.rcer.conn.connections.ConnectionManager ,那里有一个工作示例。
你需要
- 复制从第 66 行开始的私有(private)类,并根据您自己的需要进行调整(即从您想要的任何位置获取连接数据)
- 在应用程序启动期间的某个位置执行注册(第 204 行)
- 使用一些字符串标识符获取连接,该标识符将传递给您的 DestinationDataProvider。
关于java - 构建没有属性文件的 JCoServer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3521272/