coldfusion - 更改 ColdFusion WEB-INF 库中的 JAR 文件

标签 coldfusion apache-commons coldfusion-10

上下文

我正在开发一个项目,我们使用 JUNG libraries 。我的自定义java代码和Jung库都放在wwwroot/WEB-INF/lib下。

请注意,JUNG 的某些类依赖于 Apache commons-collections.jar,它也存在于同一文件夹中(默认由 CF 提供)。

问题

我们计划从 CF7 迁移到 CF10,因此,我正在对项目中的所有代码进行试点测试,发现某些代码(使用 JUNG)因“找不到类”而失败异常。

在调试和检查 CF 10 中给出的 commons-collections-2.1.jar 中的方法时,我发现它与 CF 7 中的方法不同。如果我将 JAR 更新为最新的 commons-collections-3.2.1 版本,代码工作正常,因为它找到了所有需要的类。

我可以更改我的代码库以适应默认的commons-collections-2.1.jar,但这将导致至少 2-3 个月的开发测试周期。我想把它作为最后的选择,如果可能的话最好避免它。

现在,我的问题是 -

  1. 如果我用 3.2.1 更改(更新)2.1 会出现什么问题?
  2. 核心 CF 的哪些部分可能使用此 JAR?
  3. 为什么 CF 使用这个过时的 2.1(我是这么认为)JAR 版本?

我做的家庭作业

  • 测试:为了不影响其余应用程序,我创建了一个单独的实例,将 JAR 更改为最新的 3.2.1,在其上托管我的应用程序并进行了一些测试。一切似乎都很好,因为我没有遇到任何问题。但是,我担心 CF 中的某些区域可能依赖于这个 JAR 并且可能会损坏。

  • cfusion\lib :我发现 commons-collections-3.2.1 已经存在于主 lib (cfusion\lib) 文件夹中。因此,更改 WEB-INF/lib 中的 JAR 可能不会产生任何影响。

  • cfusion\wwwroot\WEB-INF\lib :我了解到,放置在此文件夹中的任何 JAR 文件仅用于应用程序,而不是由 CF 本身使用。我可能是错的或者完全误解了意思。纠正我!

这个问题的回答将有助于我更多地了解CF并解决问题。

最佳答案

我想我已经找到答案了。

Adobe在制作CF10时更改了其WEB-INF/lib中的commons-collections.jar,这是我的误解。它没有,即使它有(假设),它也与我的问题无关。

阅读 @Miguel-F 的评论后,和@Leigh ,我检查了之前的安装并比较了lib的变化。在此期间,我发现之前的一位开发人员故意将 Commons-collections 从 CF 提供的原始集合更改为自定义集合,并且 JUNG 可以正常工作。我从 JAR 编译签名和其中与更改相对应的小注释中确认了这一点。

现在,我已将相同的文件复制到新的 CF 10 中,并且我的报告运行良好。

带走:

  1. 仅当您使用自定义代码并且重要的是您知道自己在做什么时,对/WEB-INF/lib/中 JAR 的更改不会影响您的 CF 安装。
  2. 如果可能,请将此类更改记录为应用程序开发日志的一部分,以便当您离开该位置时,下一个开发人员可以轻松了解这些自定义内容。
  3. 向社区讨论您的问题,在让他们理解问题的过程中,您可能会找到答案。 :)

谢谢

我要感谢@Miguel-F@Brian征求他们对系统配置的意见。更多感谢@Leigh对于他的有何不同?。这让我重新思考并找到了答案。

关于coldfusion - 更改 ColdFusion WEB-INF 库中的 JAR 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15522101/

相关文章:

jquery - ColdFusion 9 JSON 解析错误?

java - GenericObjectPools borrowObject 方法线程安全吗?

apache - 关于 org.apache.commons.dbcp.BasicDataSource 的问题

multithreading - ColdFusion 动态线程名称

coldfusion - Coldfusion 的 createObject() 函数如何搜索组件?

rest - ColdFusion 10 REST API : How to set status code 201 without RestSetResponse()

jquery - 无法将 ID 变量传递到在模态框中显示正确记录的 CFC

dynamic - Coldfusion 动态查询输出

coldfusion - 将超过 100 个参数传递给 ColdFusion 函数会引发错误

jsp - Apache commons -> 文件上传 -> parseRequest() 错误