JBoss 6.1.1.EAP模块部署:找不到类

时间:2015-08-11 09:32:24

标签: eclipse maven java-ee jboss6.x

结构如下: 实际部署的模块是EAR。 EAR包含WAR模块,WAR模块包含另一个JAR模块。 在最后一个JAR中,有一些生成的类,它们的父文件夹也用作源文件夹。它的路径是“target / generated-sources / java”。 杀死我的问题是,部署的应用程序在服务器启动时抛出ClassNotFoundException,并且所讨论的类是生成的类。

现在的诀窍: 如果我在Eclipse中明确更改WAR项目中的Deployment Assembly不要将JAR项目包含为“project”,而是作为JAR项目“target”文件夹中的存档,JBoss会看到生成的类并启动。

然而,此解决方案仅适用于下一次eclipse maven项目更新,因此部署程序集的手动编辑并不是真正的解决方案。

有关如何正确部署或重新组织包的任何想法吗?

3 个答案:

答案 0 :(得分:1)

好的,好像我找到了解决方案。

我查看了上述JAR文件的构建路径,发现条目输出文件夹指向target/test-classes

将此条目更改为target/classes后,应用程序将部署并启动,而不会丢失任何生成的类。

答案 1 :(得分:0)

这对我有用:

  1. 展开'目标' Eclipse中的maven项目文件夹(Project Explorer View);
  2. 刷新它(F5);
  3. 右键点击服务器上的项目'选项卡,然后选择"完全发布";
  4. 启动你的JBoss。
  5. 我必须强制执行JBoss工具"完全发布"通过在eclipse上手动刷新来获取目标文件夹的更新版本。

    我不知道为什么,但有时从maven项目发布(甚至是完整发布)不会像在文件系统中那样从目标项目中复制类。也许它使用了一些过时的内存信息或一些缓存...

    无论如何,这对我有用。

答案 2 :(得分:0)

在更新了Eclipse 4.15和JBoss工具之后,我也遇到了这个问题。

我的解决方案:项目->属性-> Java构建路径->源

我的源文件夹中的Output文件夹已链接到project / target / classes,我将其更改为project / target / project-projectversion / WEB-INF / classes

当我查看独立的JBoss文件夹时,我看到了源代码的文件夹结构,但是缺少类,当我更改输出文件夹时,这些类弹出了,并且一切都像以前一样工作。

我很确定该更新会引起问题。