2011-01-26 5 views
0

Попытка моя рука в CDI в первый раз. Я использую Glassfish v3. Когда я раскрываю мое приложение, я получаю следующий отказ:Glassfish + CDI приводит к IncompatibleClassChangeError

java.io.IOException: com.sun.enterprise.admin.cli.remote.RemoteFailureException: Exception while loading the app : org.glassfish.deployment.common.DeploymentException: java.lang.IncompatibleClassChangeError: com.example.arizona.client.ArizonaService and com.example.arizona.client.ArizonaService$App disagree on InnerClasses attribute

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

Я должен упомянуть, что я даже не на самом деле с помощью инъекции, или любой другой КДИ имеется еще. Это просто попытка выпрямить зависимости.

ответ

2

У меня была та же проблема, но с Weld в Tomcat. Проблема для меня была вызвана изменением определения внутреннего класса на обычный класс. В результате, в моем случае, наличие старого внутреннего класса все еще в каталоге классов, но с новым родительским классом.

Очистка каталога классов работала для меня.

+0

Немного поздно, я вижу, хорошо, может быть, это поможет кому-то :) –

0

Почти год спустя мне жаль говорить, что я никогда не решал этого, и по разным причинам перешел в другой стек: Tomcat, Wicket и Wicket-CDI, все из которых отлично поработали для меня.