在WAR classes文件夹中解压缩JAR无法正常工作?

时间:2014-02-06 18:42:01

标签: java eclipse maven jar

解决!

好的,所以我有一个Web应用程序,它正在使用lib文件夹中的JAR文件。我一直试图在我的WEB文件夹的类中解压缩其中一个JAR。这样两个项目就可以合并到1个项目中。我使用以下方法将jar解压缩到正确的位置:

Building a WAR project with unzipped JAR dependency?

现在你可能会问自己为什么我会这样做。因为很难解释让我们去:这就是我想要做的。

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

让我们试一试:

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

然而它不再加载我的bean(来自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从等式中删除了,它运行正常。

感谢所有帮助人员,我真的很感激!

1 个答案:

答案 0 :(得分:0)

如果您的情况如下:

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

然后这应该是WEB-INF / classes目录的内容(爆炸):

  • COM
    • blammy
      • schmoores
        • 类文件
    • 苹果
      • 类文件

类文件的来源没有价值;只有目录结构很重要。

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