我应该将 tomcat 外部库放在哪里?

我应该将 tomcat 外部库放在哪里?

我尝试在 tomcat 下运行 scala 应用程序,每当我使用标准 java 东西时,我似乎都没问题。但是,当我执行诸如字符串连接或序列生成之类的操作时,我会收到 NoClassDefFound 的奇怪错误...

我首先想到的是,我没有将所需的 scala-library jar 放在正确的目录中,或者我需要进行一些额外的配置,以使我的 servlet 知道外部依赖关系。我尝试将 scala-library.jar 放在 tomcat6“lib”目录和 ROOT/WEB-INF/lib 下,但似乎都不允许我的 servlet 使用 jar 中的类。发生了什么?

答案1

在启动 tomcat 之前,检查 CLASSPATH 环境变量是否包含 scala-library.jar 文件的路径。

答案2

如果您将 scala-library.jar 放入 JRE/lib/ext 目录,那么应该可以正常工作。当然,这是运行 Tomcat 的 JRE。这会将 scala 放置在“默认类加载器”中,而不是 Tomcat 的类加载器中……理论上,应该可以解决您的问题。实际上,这与 Tom O'Connors 的回答相同,只是我告诉您为什么会出现类未找到错误:因为自定义类加载器。

相关内容