jboss 5.1.0ga: "java.lang.IlegalStateException: null beanmetadata" و "java.lang.runtimeexception: فشل في تهيئة حاوية الفول"
سؤال
أحاول نشر ملف الأذن ، والذي تم كتابته في الأصل لـ JBOSS 4.0.3 SP1.
"الترقية" المعنية:
- استخدام javax.annotation.postconstruct
- تغيير activateConfig إلى ActivationConfig
- تأكد من أن الفول ينفذ استيراد javax.jms.messagelistener
أعتقد أن تتبع المكدس التالي يتم تشغيله بواسطة MDB (واحد وفقط) داخل ملف EJB.
10:42:37,350 ERROR [AbstractKernelController] Error installing to Real: name=vfszip:/C:/opt/jboss-5.1.0.GA/server/default/deploy/my-service.ear/ state=PreReal mode=Manual requiredState=Real
org.jboss.deployers.spi.DeploymentException: Error deploying my-service-ejb.jar: failed to initialize bean container
at org.jboss.ejb3.deployers.Ejb3Deployer.deploy(Ejb3Deployer.java:196)
at org.jboss.ejb3.deployers.Ejb3Deployer.deploy(Ejb3Deployer.java:99)
at org.jboss.deployers.vfs.spi.deployer.AbstractVFSRealDeployer.internalDeploy(AbstractVFSRealDeployer.java:45)
at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:50)
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:171)
at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1439)
at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1157)
at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1210)
at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098)
at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)
at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781)
at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:702)
at org.jboss.system.server.profileservice.repository.MainDeployerAdapter.process(MainDeployerAdapter.java:117)
at org.jboss.system.server.profileservice.hotdeploy.HDScanner.scan(HDScanner.java:362)
at org.jboss.system.server.profileservice.hotdeploy.HDScanner.run(HDScanner.java:255)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.RuntimeException: failed to initialize bean container
at org.jboss.ejb3.EJBContainer.<init>(EJBContainer.java:253)
at org.jboss.ejb3.mdb.MessagingContainer.<init>(MessagingContainer.java:87)
at org.jboss.ejb3.mdb.MDB.<init>(MDB.java:63)
at org.jboss.ejb3.Ejb3AnnotationHandler.getMDB(Ejb3AnnotationHandler.java:336)
at org.jboss.ejb3.Ejb3AnnotationHandler.getContainers(Ejb3AnnotationHandler.java:215)
at org.jboss.ejb3.Ejb3Deployment.deployElement(Ejb3Deployment.java:718)
at org.jboss.ejb3.Ejb3Deployment.deployElement(Ejb3Deployment.java:669)
at org.jboss.ejb3.Ejb3Deployment.deployUrl(Ejb3Deployment.java:651)
at org.jboss.ejb3.Ejb3Deployment.deploy(Ejb3Deployment.java:614)
at org.jboss.ejb3.Ejb3Deployment.create(Ejb3Deployment.java:491)
at org.jboss.ejb3.deployers.Ejb3Deployer.deploy(Ejb3Deployer.java:182)
... 29 more
Caused by: java.lang.IllegalStateException: Null beannMetaData
at org.jboss.ejb3.interceptors.metadata.BeanInterceptorMetaDataBridge.setupMetaDataLists(BeanInterceptorMetaDataBridge.java:315)
at org.jboss.ejb3.interceptors.metadata.BeanInterceptorMetaDataBridge.initialise(BeanInterceptorMetaDataBridge.java:235)
at org.jboss.ejb3.interceptors.metadata.BeanInterceptorMetaDataBridge.<init>(BeanInterceptorMetaDataBridge.java:138)
at org.jboss.ejb3.interceptors.metadata.AdditiveBeanInterceptorMetaDataBridge.<init>(AdditiveBeanInterceptorMetaDataBridge.java:48)
at org.jboss.ejb3.aop.BeanContainer.initialize(BeanContainer.java:194)
at org.jboss.ejb3.EJBContainer.<init>(EJBContainer.java:249)
... 39 more
Caused by: java.lang.NullPointerException
at org.jboss.ejb3.interceptors.metadata.BeanInterceptorMetaDataBridge.setupMetaDataLists(BeanInterceptorMetaDataBridge.java:268)
... 44 more
فقط أتساءل عما إذا كان يمكن لأي شخص اقتراح ما يجب النظر إليه.
المحلول
يجب أن تكون غريبًا ، ولكن حاول معرفة ما إذا كان هناك بعض libs مفقودة لمشروعك.
كنت أفعل نفس الشيء هنا ، حاولت العثور على بعض الإجابة في Google ولا شيء يساعدني.
ثم عندما أحاول أن أنظر مرة أخرى مشروعي وأرى أن هناك بعض libs مفقودة. عندما أضيفها ، فهي تعمل.
نصائح أخرى
حصلت على هذا الخطأ في محاولة نشر أذن ، تم إنشاؤها بواسطة Maven.
كانت المشكلة بسيطة: تم إعلان واحد *-ejb.jar كوحدة أذن ، وأيضًا كاعتماد في وحدة أخرى. يؤدي ذلك إلى وجود 2 *-ear.jar في حزمة الأذن ، واحدة في مجلد الجذر وغيرها في مجلد LIB.
لقد تلقيت هذه الحالة للتو عند إصلاح بعض اختبارات arquillian ، هكذا انتهى بي الأمر في هذه الصفحة :(. يبدو أن هذا الخطأ يتم طرحه عندما يكون لديك فئة كيان تحتوي على فئة مضمنة كمفتاح:
@Entity
@Table(name = "Xyz")
public class Xyz implements Serializable
{
@EmbeddedId
private XyzPK id;
...
}
كان نشر الاختبار الخاص بي مفقودًا من الفئة XYZPK وكنت أحصل على هذا الخطأ الغريب "Null Beannmetadata". بمجرد أن أضفت كل شيء على ما يرام.