0

我正在开发一个 GWT 应用程序,并且正在使用第 3 方 Java-R 包装器库。这将被转换为 Java 字节码并(我猜)通过 R 库调用一些方法。我能够成功地让它在 eclipse 开发模式下工作。

为了让它工作,我必须将 .jar 添加到类路径中,并添加到 java 路径(在 Run-Configurations->Environment Variables 下)变量以添加包含多个 .dll 的文件夹的位置程序的执行。

在开发模式下一切似乎都运行良好,但是当我通过 Tomcat 7 部署它时似乎出现问题。当我在 GWT 中修改环境变量时,我还需要做些什么吗?

最初 Tomcat 服务器会因为以下原因而崩溃

May 06, 2013 4:08:22 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application [/r] is still processing a request that has yet to finish. This is very likely to create a memory leak. You can control the time allowed for requests to finish by using the unloadDelay attribute of the standard Context implementation.

我稍微改变了代码,现在它刚刚进入了一个看似无限的while循环。然而,这些细节对我的问题似乎并不重要。

我假设有两种方法可以为 GWT 使用第三方库

  1. 它只是一个 Jar,您只需包含(以及在您的 web-inf/lab 中),一切正常
  2. 您使用一个 Jar 和一堆其他 .dll,它们的路径是在项目的环境变量中设置的。这就是我所做的,它再次在开发模式下工作,但在部署模式下不工作。

非常感谢任何和所有反馈/建议。谢谢!

4

1 回答 1

1

您包含在类路径中的 jar 在服务器运行时中不可用,如果您不想将它们显式放在 WEB-INF/lib 中,可以尝试将这些 jar 复制到 tomcat 的 server/lib 文件夹中

由于您有 .dll,因此它们还需要通过传递 jvm 参数来设置

java -Djava.library.path=/dlls.folder

对于 tomcat,您可以编辑 bin/startup.sh(或 .bat)并修改 java.library.path 变量,在某些系统中,您可能还需要设置 LD_LIBRARY_PATH 变量,请参见此处的类似讨论

于 2013-05-07T00:49:48.950 回答