在我的 java web 应用程序中,尝试连接 SAP 服务器。生成此错误。我已将sapjco3.dll 和 sapjco3.jar放在WEB-INF/lib/中,并在 Java 构建路径中进行了配置。我还将 servlet 中的路径设置为
System.setProperty("java.library.path", "/WEB-INF/lib");
但也存在错误。
你的方法有几个问题
不建议以java.library.path
编程方式更改,因为该属性在 JVM 启动时被缓存。有关详细信息,请参阅以编程方式设置“java.library.path”。
您正在覆盖java.library.path
而不是在最后添加您的目录。您的应用程序服务器很可能需要自己的一些本机库。
/WEB-INF/lib
是您的 JVM 不会找到的相对路径,因为 JVM 根目录与您的应用程序根目录不同(更不用说如果您正在部署 WAR 文件)
通常,您应该将 SAP JCo 配置为服务器库,而不是应用程序库。确切的过程取决于您的应用程序服务器。
如果您像我一样在 Windows 上,您可以将sapjco3.dll放在文件系统中您想要的任何位置(Windows system32和sysWOW64目录除外,如 sapjco3 文档中所述),然后将其路径添加到您的Path系统变量:
在 Linux 上,将libsapjco3.so文件的路径添加到环境变量LD_LIBRARY_PATH
如果您在 JBoss 上并且需要将 sapjco3.jar 放入您的项目中,请在此处查看我的答案: https ://stackoverflow.com/a/21901220/1592796