【发布时间】:2013-04-27 12:22:41
【问题描述】:
在我的 java web 应用程序中,尝试连接 SAP 服务器。生成此错误。我已将 sapjco3.dll 和 sapjco3.jar 放在 WEB-INF/lib/ 中,并在 Java 构建路径中进行了配置。 我还将 servlet 中的路径设置为
System.setProperty("java.library.path", "/WEB-INF/lib");
但也存在错误。
【问题讨论】:
在我的 java web 应用程序中,尝试连接 SAP 服务器。生成此错误。我已将 sapjco3.dll 和 sapjco3.jar 放在 WEB-INF/lib/ 中,并在 Java 构建路径中进行了配置。 我还将 servlet 中的路径设置为
System.setProperty("java.library.path", "/WEB-INF/lib");
但也存在错误。
【问题讨论】:
你的方法有几个问题
不建议以编程方式更改 java.library.path,因为该属性在 JVM 启动时被缓存。有关详细信息,请参阅Setting "java.library.path" programmatically。
您正在覆盖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
【讨论】: