Hello, 

I am trying to run some tests with Open EJB and got the following error when 
running an application with a MDB (EJB 2.0) declared on ejb-jar.xml as follows: 



<message-driven> 
<display-name>FechamentoMDB</display-name> 
<ejb-name>FechamentoMDB</ejb-name> 
<ejb-class>br.com.softplan.sider.sip.bens.moveis.contabilidade.fechamento.FechamentoMDB</ejb-class>
 
<transaction-type>Bean</transaction-type> 
<acknowledge-mode>Auto-acknowledge</acknowledge-mode> 
<message-driven-destination> 
<destination-type>javax.jms.Queue</destination-type> 
</message-driven-destination> 
</message-driven> 

Here's the stack trace: 



22/05/2015 11:12:17 org.apache.openejb.util.OpenEJBErrorHandler 
handleUnknownError 
GRAVE: FATAL ERROR: Unknown error in Assembler. Please send the following stack 
trace and this message to [email protected] : 
java.lang.IllegalStateException: When annotating a bean class as @MessageDriven 
without declaring messageListenerInterface, the bean must implement exactly one 
interface, no more and no less. 
beanClass=br.com.softplan.sider.sip.bens.moveis.movimentacoes.movimento.MovimentoMDB
 interfaces= 
at 
org.apache.openejb.config.AnnotationDeployer$ProcessAnnotatedBeans.deploy(AnnotationDeployer.java:2603)
 
at 
org.apache.openejb.config.AnnotationDeployer$ProcessAnnotatedBeans.deploy(AnnotationDeployer.java:1726)
 
at 
org.apache.openejb.config.AnnotationDeployer.deploy(AnnotationDeployer.java:344)
 
at 
org.apache.openejb.config.ConfigurationFactory$Chain.deploy(ConfigurationFactory.java:379)
 
at 
org.apache.openejb.config.ConfigurationFactory.configureApplication(ConfigurationFactory.java:884)
 
at 
org.apache.openejb.config.ConfigurationFactory.configureApplication(ConfigurationFactory.java:757)
 
at 
org.apache.openejb.config.ConfigurationFactory.getOpenEjbConfiguration(ConfigurationFactory.java:515)
 
at 
org.apache.openejb.assembler.classic.Assembler.getOpenEjbConfiguration(Assembler.java:373)
 
at org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:352) 
at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:147) 
at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:65) 
at org.apache.openejb.OpenEJB.init(OpenEJB.java:292) 
at org.apache.openejb.OpenEJB.init(OpenEJB.java:272) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 
at java.lang.reflect.Method.invoke(Method.java:597) 
at org.apache.openejb.loader.OpenEJBInstance.init(OpenEJBInstance.java:36) 
at 
org.apache.openejb.core.LocalInitialContextFactory.init(LocalInitialContextFactory.java:69)
 
at 
org.apache.openejb.core.LocalInitialContextFactory.init(LocalInitialContextFactory.java:51)
 
at 
org.apache.openejb.core.LocalInitialContextFactory.getInitialContext(LocalInitialContextFactory.java:40)
 
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667) 
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288) 
at javax.naming.InitialContext.init(InitialContext.java:223) 
at javax.naming.InitialContext.<init>(InitialContext.java:175) 
at 
br.com.softplan.sider.sip.test.SipEJBCaseTest.getDataSource(SipEJBCaseTest.java:97)
 
at 
br.com.softplan.sider.sip.test.SipEJBCaseTest.runScript(SipEJBCaseTest.java:86) 
at 
br.com.softplan.sider.sip.test.SipEJBCaseTest.scriptsShutdown(SipEJBCaseTest.java:107)
 
at 
br.com.softplan.sider.sip.test.SipEJBCaseTest.tearDown(SipEJBCaseTest.java:102) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 
at java.lang.reflect.Method.invoke(Method.java:597) 
at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
 
at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
 
at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
 
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:33) 
at org.junit.runners.ParentRunner.run(ParentRunner.java:309) 
at 
org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
 
at 
org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
 
at 
org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 
at java.lang.reflect.Method.invoke(Method.java:597) 
at 
org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
 
at 
org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
 
at 
org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
 
at 
org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
 
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75) 

So far, I can add that no Annotations are being used and my MDB extends a class 
that implements MessageDrivenBean and MessageListener. 
I tried updating to EJB 2.1 with the following definition: 



<message-driven> 
<display-name>FechamentoMDB</display-name> 
<ejb-name>FechamentoMDB</ejb-name> 
<ejb-class>br.com.softplan.sider.sip.bens.moveis.contabilidade.fechamento.FechamentoMDB</ejb-class>
 
<messaging-type>javax.jms.MessageListener</messaging-type> 
<transaction-type>Bean</transaction-type> 
<activation-config> 
<activation-config-property> 
<activation-config-property-name>acknowledgeMode</activation-config-property-name>
 
<activation-config-property-value>AutoAcknowledge</activation-config-property-value>
 
</activation-config-property> 
<activation-config-property> 
<activation-config-property-name>destinationType</activation-config-property-name>
 
<activation-config-property-value>javax.jms.Queue</activation-config-property-value>
 
</activation-config-property> 
</activation-config> 
</message-driven> 

But that went up to no good, as the same error happened. 

There's no way I can upgrade it to EJB 3, so I was wondering if you could 
somehow help me. 

Thanks in advance, 

RENATO PEREIRA BACK 
ANALISTA IMPLEMENTADOR 
UNIDADE DE GESTÃO PÚBLICA 
Softplan/Poligraph 
+55 48 3027-8000 
www.softplan.com.br 
twitter.com/softplanonline 

Reply via email to