5

我试图了解在 Tomcat 中运行时遇到的 JSR223 脚本问题。我正在使用 Java 脚本引擎,但我相信这个问题更普遍(我也看到了与参考 JS 引擎类似的问题)。我传递给评估的脚本的第一行是:

import javax.servlet.http.*;

这失败并显示以下消息:

package javax.servlet.http does not exist

因此,深入研究 Java 脚本引擎的源代码,我知道为什么会发生这种情况 - 它将我的脚本文本传递给 JavaCompiler,指定它从中检索到的类路径java.class.path,但是因为 Tomcat 在类加载器和类路径方面做了自己的事情关心的是,唯一包含的是$CATALINA_HOME/bin/bootstrap.jar.

可以覆盖脚本引擎将使用的类路径,但这只会给我带来下一个问题 - 我如何在运行时发现 Tomcat 正在使用什么 claspath?

似乎我必须在这里遗漏一些明显的东西,因为据我所知,这将发生在任何试图在 Web 应用程序中执行任何类型的严肃脚本的人身上,但我已经搜索了几个小时来进行讨论在这方面,甚至找不到任何人问这个问题......

4

0 回答 0