当前位置: 首页 > 知识库问答 >
问题:

在ColdFusion WEB-INF库中更改JAR文件

百里承业
2023-03-14

上下文

我正在做一个使用JUNG图书馆的项目。我的自定义java代码和Jung库都放在wwwroot/WEB-INF/lib下。

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

问题

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

关于调试和检查commons-collections-2.1中的方法。CF 10中给出的jar,我发现它与CF 7中的不同。如果我将JAR更新到最新的commons-collections-3.2.1版本,那么代码运行良好,因为它找到了所有需要的类。

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

现在,我的问题是-

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

我做的家庭作业

>

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

    csion\lib:我发现Commons-Collection es-3.2.1已经存在于主lib(csion\lib)文件夹中。所以,可能在WEB-INF/lib中更改JAR不会有任何区别。

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

    回答这个问题将有助于我更好地理解CF,并解决问题。

  • 共有1个答案

    蓝逸仙
    2023-03-14

    我想我已经找到了答案。

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

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

    现在,我已经将同一个文件复制到新的CF 10中,我的报告工作正常。

    外卖:

    1. 只有在处理自定义代码时,对/WEB-INF/lib/中JAR的更改才不会对CF的安装产生总体影响
    2. 如果可能的话,请将这些更改记录为应用程序开发日志的一部分,以便在您离开时,下一位开发人员可以轻松地了解这些定制
    3. 向社区谈论你的问题,在让他们理解问题的过程中,你可能会找到答案。:)

    非常感谢。

    我要感谢@Miguel-F和@Brian对系统配置的投入。还要感谢“Leigh”的与众不同?。这让我重新思考并找到了答案。

     类似资料:
    • 根据这个问题,我创建了一个实现Catalina LifecycleListener类的类。 如何在Tomcat启动时运行脚本? 当我将JAR文件放置在webapps/root/web-inf/lib中时,Tomcat启动失败,出现类未找到的异常: java.lang.ClassNotFoundException:Net.Company.Tomcat.StartupEventHookListener

    • 我正在使用 Maven 来构建一个 Java 项目,我有几个文件,和,我想将它们复制到 JAR 文件内的 目录中。 到目前为止,我的工作如下: 但这也会在编译时将这两个文件复制到 目录中。 所以我希望这些文件包含在JAR文件中,而不是其他地方。有办法做到这一点吗?

    • 问题内容: 如何更改要分发的文件的图标?我已经更改了程序运行时显示的图标,但是我想更改环境(例如Windows XP)中的图标,即用于文件本身。我用谷歌搜索,但我能找到的最好方法是将转换为,这不是最佳选择。 问题答案: 图标是操作系统的决定,而不是您的决定:-( 在特定的客户端中,您可以更改.JAR扩展名的本地设置,但不能作为常规分发机制

    • 我正在为SAP hana云平台开发一个需要UnlimitedJCEPolicyJDK8的实现。文档告诉我需要将其置于以下结构下: WAR文件:meta-inf-ext_security-jre8 问题是,当我包含JAR时,它会转到WEB-INF/类,而服务器并不在这方面。如图所示。 尝试了以下操作: 使用eclipse web部署程序集添加文件(无论出于什么原因,它似乎不能与maven一起工作,是

    • 问题内容: 我想用一个新的 jar* 更新一个 .class 文件。什么是最简单的方法,尤其是在Eclipse IDE中? * 问题答案: 本教程详细介绍了如何更新jar文件 其中“ u”表示更新。

    • 我有一个META-INF文件夹,其中有persitence.xml和orm.xml。当我用下面的gradle构建一个jar文件时,这些文件不会包含在jar中。如何将这些文件复制到jar中?