Glassfish + CDI导致IncompatibleClassChangeError

时间:2011-01-26 23:26:21

标签: glassfish glassfish-3 cdi

第一次尝试CDI。我正在使用Glassfish v3。当我部署我的应用程序时,出现以下故障:

  

java.io.IOException的:   com.sun.enterprise.admin.cli.remote.RemoteFailureException:   加载应用时出现异常:   org.glassfish.deployment.common.DeploymentException:   java.lang.IncompatibleClassChangeError:   com.example.arizona.client.ArizonaService   和   com.example.arizona.client.ArizonaService $应用   不同意InnerClasses属性

     

在   com.fuhrer.idea.glassfish.server.GlassfishServer3.doParseResponse(GlassfishServer3.java:28)     在   com.fuhrer.idea.glassfish.server.GlassfishServer3Base.parseResponse(GlassfishServer3Base.java:156)     在   com.fuhrer.idea.glassfish.server.GlassfishServer3Base.invoke(GlassfishServer3Base.java:127)     在   com.fuhrer.idea.glassfish.server.GlassfishServer3Base.handleDeployment(GlassfishServer3Base.java:78)     在   com.fuhrer.idea.javaee.server.JavaeeServerInstance $ 2.run(JavaeeServerInstance.java:131)

我应该提一下,我实际上甚至没有使用注入或任何其他CDI功能。这只是试图让依赖关系理顺。

2 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,但在Tomcat中使用了Weld。对我来说问题是由于将内部类定义更改为普通类。在我的例子中,导致旧的内部类仍然在classes目录中,但是有一个新的父类。

清理classes目录对我有用。

答案 1 :(得分:0)

近一年后,我很遗憾地说我从来没有解决这个问题,并且出于各种原因完全转移到了另一个堆栈:Tomcat,Wicket和Wicket-CDI,所有这些都对我有用。< / p>