1

我有 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 的 jar并将其添加到 CF(粘贴到 C:\ColdFusion9\runtime\lib 并重新启动 cf 服务)但它没有任何区别。该软件包的旧版本是否包含在作为 CF 的一部分的 jar 中?

4

1 回答 1

2

是的。ColdFusion 本身作为 servlet 运行(本质上)。所以 javax.servlet 库已经包含在主 CF 类路径中,这就是createObject()调用起作用的原因。但是,JavaLoader 默认不加载 CF 类路径

参数: loadColdFusionClassPath

默认为: false

使用加载的库加载 ColdFusion 库。true这过去是默认开启的,但现在如果您希望访问 ColdFusion 在应用程序启动时加载的任何库,您必须将其隐式设置为开启。

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

于 2016-09-30T18:18:33.497 回答