【问题标题】:missing package in Coldfusion 9 using JavaLoader使用 JavaLoader 在 Coldfusion 9 中缺少包
【发布时间】:2026-02-17 12:40:01
【问题描述】:

我有 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#">

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

【问题讨论】:

  • 您在编译自定义源代码或运行基本HelloWorld example 时是否遇到该错误?您可以发布完整的堆栈跟踪吗? RE: ...javax.servlet.http 包似乎已经存在 是的,ColdFusion 是一个 servlet。所以它包含在主 CF 类路径中。但是,JavaLoader 默认不包含主 CF 类路径路径。尝试设置loadColdFusionClassPath=true
  • 谢谢,利!添加 loadColdFusionClassPath=true 修复了它......或者至少让我克服了那个依赖错误:-)
  • 至少让我克服了依赖错误啊,解决依赖关系的乐趣 ;-)

标签: java coldfusion coldfusion-9 javaloader


【解决方案1】:

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

参数: loadColdFusionClassPath

默认为: false

加载带有加载的 ColdFusion 库 图书馆。这曾经是默认开启的,但是现在你必须 如果您希望访问任何 ColdFusion 在应用程序启动时加载的库。

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

【讨论】: