2017-09-13 82 views
0

我当前的项目由一个war和ejb模块组成,使用一个jar(通过maven合并)。这个jar包含一个CDI组件,当我在war模块中注入它时,它的工作方式与预期的一样,但是当我在ejb模块中注入时,从Eclipse WAS 8.5(完整配置文件)启动期间,我得到一个NoClassDefFoundError。eclipse:EJB模块中的外部CDI:NoClassDefFoundError

当我首先启动服务器时,稍后添加注入并重新发布它似乎工作。另外,当我使用Liberty配置文件时,它可以工作同样在Z/OS和IPAS上,它按预期工作。

我认为它可能有类加载的东西,但不知道如何正确解决这个问题。

使用Eclipse霓虹灯,WAS 8.5.5.11完整资料,JEE6 项目,同时该组件是用java 6

这是堆栈跟踪的第一部分用java 8:

[13-9 -17 14:54:26:589 CEST] 0000003e InjectionProc W CWNEN0047W:BestelFacade类的字段上的资源注释将被忽略。在java.lang.Class.getDeclaredFieldsImpl(本机方法)记录仪

感谢

+0

JAR位于您的部署位置(ear/lib或war/lib)在哪里?它包含哪些bean(纯CDI或EJB无状态/有状态bean)?在这里粘贴你的'NoClassDefFoundError'。 – Siliarus

+0

该类的类文件不可用于尝试执行此操作的类加载器。你很可能需要把它放在别的地方。 –

+0

@Siliarus jar就像其他人一样只是一个maven依赖项。据我所知,它包含纯CDI bean(仅用于@Dependent的注释)。对于错误请参阅编辑的问题 – Bgvv1983

回答

0

我发现完成任务的方式,但我:注释不能因为EXC 主器件接收的获得不知道这是一个合适的解决方案,或者只是一个解决方案,而掩盖真正的问题。

当我看一看耳模块组件我在源列c见:/ WS /.../罐和在deploy路径LIB /罐

当我改变源极到/。 .ear/target /../它的工作原理