解决!
好的,所以我有一个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从等式中删除了,它运行正常。
感谢所有帮助人员,我真的很感激!
答案 0 :(得分:0)
如果您的情况如下:
然后这应该是WEB-INF / classes目录的内容(爆炸):
类文件的来源没有价值;只有目录结构很重要。
此外,类的目录结构必须与类的包名匹配。
例如,
如果你的JAR文件包含一个类(kapow.class),并且这个类的包是com.blammy.schmoores,那么你的类direcirectory的目录结构应该如上所述。
kapow.class文件的路径应为.../WEB-INF/classes/com/blammy/schmoores/kapow.class