gpt4 book ai didi

java - 通过POM入口运行应用程序时如何避免bcprov-jdk16-1.45.jar

转载 作者:行者123 更新时间:2023-11-30 06:13:42 28 4
gpt4 key购买 nike

我有一个在 Weblogic 12.1.3 中运行的 Java 8 应用程序。该应用程序使用 iText 5.5.9 并且所需的 BC 的最低版本是 1.49 。该应用程序在 Weblogic 中部署为 WAR 文件。我可以看到 war 文件具有正确版本的 BC 。但在运行时,它取自 WebLogic maven 插件路径并使用 BC 1.45。有什么方法可以通过编辑 POM 条目或编辑 WebLogic.xml 来避免这种情况。如果我从本地服务器中删除 BC 1.45 jar,它会成功运行。但我无法从更高的环境服务器中删除 jar。所以请帮忙。谢谢。

最佳答案

这是一个已知问题。 BC 在版本之间破坏了他们的 API,当你的 CLASSPATH 中有两个不同的 BC 版本时,你会得到非常奇怪的错误(这可能会根据首先加载的版本而有所不同)。我看到您仍在使用旧的 iText(不是 iText 7),这意味着您可以切换到 iTextG。

iTextG 中的 G 代表 Google,创建 iTextG 是为了避免一些问题。例如:

  • 未列入白名单以在 GAE 或 Android 上使用的 Java 类已被删除,
  • 调整了在云环境中没有意义的特定文件操作,
  • BouncycaSTLe 被 SpongyCaSTLe 取代。

  • BouncyCaSTLe 和 SpongyCaSTLe 是相同的,除了它们的包名称和安全提供者的名称(“BC”与“SC”)。由于这些差异,两个不同的版本,例如 WebLogic 中的 BC 版本 1.45 和 iTextG 应用程序中的 SpongyCaSTLe 版本 1.49 不会发生冲突。

    这对于在 Android 上使用 iText 是必要的,因为 Android 附带旧版本的 BC(就像您的 WebLogic 附带旧版本一样)。

    关于java - 通过POM入口运行应用程序时如何避免bcprov-jdk16-1.45.jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49682961/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com