具有第三方库的GWT应用程序在开发模式下工作,但不在部署模式下工作

时间:2013-05-06 23:59:50

标签: gwt gwt-rpc

我正在开发一个GWT应用程序,我正在使用第三方Java-R包装器库。这将被转换为Java Bytecode并且(我猜)通过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.

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

我假设有两种方法可以将第三方库用于GWT

  1. 这只是一个你刚刚包含的Jar(以及你的web-inf / lab),一切正常
  2. 您使用Jar和一堆其他.dll,其路径是您在环境变量中为项目设置的。这就是我所做的,再次,它在开发模式下工作,但不在部署模式下工作。
  3. 任何和所有反馈/建议都非常适合。谢谢!

1 个答案:

答案 0 :(得分: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变量 看到类似的讨论here