gpt4 book ai didi

java - WAR 类文件夹中解压的 JAR 不起作用?

转载 作者:太空宇宙 更新时间:2023-11-04 15:08:51 26 4
gpt4 key购买 nike

已解决!

好的,我有一个 Web 应用程序正在处理 lib 文件夹中的 JAR 文件。我一直在尝试解压缩 WEB 文件夹的类中的 JAR 之一。这样 2 个项目就可以在构建时合并为 1 个项目。我使用以下方法将 jar 解压缩到正确的位置:

Building a WAR project with unzipped JAR dependency?

现在您可能会问自己为什么我要这样做。因为很难解释,所以就这样吧:这就是我想做的。

需要明确的是:我不希望讲座告诉我“这是错误的”和“你不能那样做,它必须是这样的”。我知道我在问什么,而且我知道您通常不会这样做。

所以让我们尝试一下:

我已将其设置为在我的类文件夹中解压缩。所有文件都位于 WEB-INF\classes 中。

但是它不再加载我的 beans(来自 JAR 的那些)。我使用组件扫描器扫描这两个包,就像我使用打包的 JAR 时一样(有效)。

WAR 和 JAR 之间存在差异。我的 JAR 有不同的包名称,例如:

war :
com.test
jar :
com.root.test

难道这就是问题所在吗?不同的包名称?

如果不是,我在这里缺少什么?

如果您需要查看一些代码,请询问,因为我不确定您需要查看什么。

提前致谢!

编辑:

我在 WAR 的 WEB-INF 文件夹中当前的文件夹结构如下:

classes  
+- com
+- +- root
+- +- +- test
+- +- +- +- processer
+- +- +- +- splitter
+- +- +- +- validators
+- +- test
+- +- +- beans
+- +- +- services
+- +- +- validators

我使用以下方式扫描它:

<context:component-scan base-package="com.test,com.root.test"/>

更新:

好的,我发现问题了。代码一切都很好。这是 Eclipse 的问题。 Eclipse 正在清理构建器文件夹,但没有正确填充它。我已经从等式中删除了 Eclipse,它工作得很好。

感谢大家的帮助,我真的很感激!

最佳答案

如果您的情况如下:

  • JAR 文件类:com.blammy.schmoores
  • WAR 文件类:com.apple

那么这应该是 WEB-INF/classes 目录的内容(分解):

  • com
    • 责备
      • 施莫尔斯
        • 类文件
    • 苹果
      • 类文件

类文件的来源没有任何值(value);只有目录结构很重要。

此外,类的目录结构必须与类的包名称匹配。例如,如果您的 JAR 文件包含一个类 (kapow.class) 并且该类的包是 com.blammy.schmoores,那么您的类目录的目录结构应该如我上面所述。kapow.class 文件的路径应为 .../WEB-INF/classes/com/blammy/schmoores/kapow.class

关于java - WAR 类文件夹中解压的 JAR 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21611290/

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