第一次尝试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功能。这只是试图让依赖关系理顺。
答案 0 :(得分:2)
我遇到了同样的问题,但在Tomcat中使用了Weld。对我来说问题是由于将内部类定义更改为普通类。在我的例子中,导致旧的内部类仍然在classes目录中,但是有一个新的父类。
清理classes目录对我有用。
答案 1 :(得分:0)
近一年后,我很遗憾地说我从来没有解决这个问题,并且出于各种原因完全转移到了另一个堆栈:Tomcat,Wicket和Wicket-CDI,所有这些都对我有用。< / p>