使用 JavaLoader 在 Coldfusion 9 中缺少包

missing package in Coldfusion 9 using JavaLoader

我有 ColdFusion 9.0.2 和 Java 1.6.0_29。我正在尝试使用 java loader 项目来编译 java 代码,但我收到此错误。

package javax.servlet.http does not exist import
javax.servlet.http.HttpServletRequest;

但是,javax.servlet.http 包似乎已经存在 b/c 我可以无误地执行此代码:

<cfset obj = createObject("java","javax.servlet.http.HttpServletRequest")>
<cfdump var="#obj#">

我已尝试将 downloading the jar 用于 javax.servlet.http 并将其添加到 CF(粘贴到 C:\ColdFusion9\runtime\lib 并重新启动 cf 服务),但没有任何区别。这个包的旧版本是否包含在作为 CF 或其他东西的一部分的 jar 中?

是的。 ColdFusion 本身作为一个 servlet(本质上)运行。所以 javax.servlet 库已经包含在主 CF class 路径中,这就是 createObject() 调用有效的原因。但是,JavaLoader does not load the CF class path by default

Parameter: loadColdFusionClassPath

Defaults to: false

Loads the ColdFusion libraries with the loaded libraries. This used to be on by default, however now you must implicitly set it to be true if you wish to access any of the libraries that ColdFusion loads at application start up.

尝试设置 loadColdFusionClassPath = true。将 javax.servlet jar 文件添加到 loadPaths 数组也可能有效。