Yup, that's it - thanks a lot! Regards, Christian Schlichtherle
Am 16.08.2013 um 16:14 schrieb Romain Manni-Bucau <[email protected]>: > remove mappedName = "TrueUpdate", otherwise destinationType = Queue > > *Romain Manni-Bucau* > *Twitter: @rmannibucau <https://twitter.com/rmannibucau>* > *Blog: **http://rmannibucau.wordpress.com/*<http://rmannibucau.wordpress.com/> > *LinkedIn: **http://fr.linkedin.com/in/rmannibucau* > *Github: https://github.com/rmannibucau* > > > > 2013/8/16 Romain Manni-Bucau <[email protected]> > >> Hi >> >> do you have a maven project with a unit test reproducing it? >> >> *Romain Manni-Bucau* >> *Twitter: @rmannibucau <https://twitter.com/rmannibucau>* >> *Blog: >> **http://rmannibucau.wordpress.com/*<http://rmannibucau.wordpress.com/> >> *LinkedIn: **http://fr.linkedin.com/in/rmannibucau* >> *Github: https://github.com/rmannibucau* >> >> >> >> 2013/8/16 Christian Schlichtherle <[email protected]> >> >>> Hi everyone, >>> >>> this is basically a repost of this article on stackoverflow.com: >>> http://stackoverflow.com/questions/18272597/openejb-ignores-configuration-properties-for-topic-resource >>> >>> I'm trying to use a Topic with a message driven bean on OpenEJB. So I've >>> edited conf/openejb.xml to: >>> >>> <?xml version="1.0" encoding="UTF-8"?> >>> <openejb> >>> <Resource id="TrueUpdate" type="javax.jms.Topic"> >>> destination = TrueUpdate >>> clientId = nevermind >>> </Resource> >>> </openejb> >>> >>> Using `bin/openejb properties` I get: >>> >>> >>> # Resource(id=TrueUpdate) >>> # className: org.apache.activemq.command.ActiveMQTopic >>> # >>> TrueUpdate = new://Resource?type=javax.jms.Topic >>> TrueUpdate.destination = TrueUpdate >>> TrueUpdate.clientId = nevermind >>> >>> This looks fine. However, when deploying my EAR file I get: >>> >>> >>> Exception: class org.apache.openejb.OpenEJBException: Unable to >>> create activation spec: Invalid settings: subscriptionDurability cannot be >>> set to: Durable when destinationType is set to javax.jms.Queue as it is >>> only valid when destinationType is set to javax.jms.Topic. clientId must be >>> set since durable subscription was requested.: Unable to create activation >>> spec: Invalid settings: subscriptionDurability cannot be set to: Durable >>> when destinationType is set to javax.jms.Queue as it is only valid when >>> destinationType is set to javax.jms.Topic. clientId must be set since >>> durable subscription was requested. >>> at >>> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:836) >>> at >>> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:546) >>> at >>> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:542) >>> at >>> org.apache.openejb.assembler.DeployerEjb.deploy(DeployerEjb.java:195) >>> at >>> org.apache.openejb.assembler.DeployerEjb.deploy(DeployerEjb.java:104) >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>> at >>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >>> at >>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>> at java.lang.reflect.Method.invoke(Method.java:606) >>> at >>> org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:181) >>> at >>> org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:163) >>> at >>> org.apache.openejb.security.internal.InternalSecurityInterceptor.invoke(InternalSecurityInterceptor.java:34) >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>> at >>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >>> at >>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>> at java.lang.reflect.Method.invoke(Method.java:606) >>> at >>> org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:181) >>> at >>> org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:163) >>> at >>> org.apache.openejb.cdi.CdiInterceptor.invoke(CdiInterceptor.java:126) >>> at >>> org.apache.openejb.cdi.CdiInterceptor.access$000(CdiInterceptor.java:42) >>> at >>> org.apache.openejb.cdi.CdiInterceptor$1.call(CdiInterceptor.java:63) >>> at >>> org.apache.openejb.cdi.CdiInterceptor.aroundInvoke(CdiInterceptor.java:69) >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>> at >>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >>> at >>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>> at java.lang.reflect.Method.invoke(Method.java:606) >>> at >>> org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:181) >>> at >>> org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:163) >>> at >>> org.apache.openejb.monitoring.StatsInterceptor.record(StatsInterceptor.java:176) >>> at >>> org.apache.openejb.monitoring.StatsInterceptor.invoke(StatsInterceptor.java:95) >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>> at >>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >>> at >>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>> at java.lang.reflect.Method.invoke(Method.java:606) >>> at >>> org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:181) >>> at >>> org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:163) >>> at >>> org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:138) >>> at >>> org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:239) >>> at >>> org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:191) >>> at >>> org.apache.openejb.server.ejbd.EjbRequestHandler.doEjbObject_BUSINESS_METHOD(EjbRequestHandler.java:290) >>> at >>> org.apache.openejb.server.ejbd.EjbRequestHandler.processRequest(EjbRequestHandler.java:140) >>> at >>> org.apache.openejb.server.ejbd.EjbDaemon.processEjbRequest(EjbDaemon.java:267) >>> at >>> org.apache.openejb.server.ejbd.EjbDaemon.service(EjbDaemon.java:191) >>> at >>> org.apache.openejb.server.ejbd.EjbServer.service(EjbServer.java:81) >>> at >>> org.apache.openejb.server.ejbd.KeepAliveServer$Session.service(KeepAliveServer.java:273) >>> at >>> org.apache.openejb.server.ejbd.KeepAliveServer$Session.access$1000(KeepAliveServer.java:192) >>> at >>> org.apache.openejb.server.ejbd.KeepAliveServer.service(KeepAliveServer.java:326) >>> at >>> org.apache.openejb.server.ejbd.EjbServer.service(EjbServer.java:72) >>> at >>> org.apache.openejb.server.ServerServiceFilter.service(ServerServiceFilter.java:64) >>> at >>> org.apache.openejb.server.ServerServiceFilter.service(ServerServiceFilter.java:64) >>> at >>> org.apache.openejb.server.ServiceStats.service(ServiceStats.java:54) >>> at >>> org.apache.openejb.server.ServerServiceFilter.service(ServerServiceFilter.java:64) >>> at >>> org.apache.openejb.server.ServiceLogger.service(ServiceLogger.java:92) >>> at >>> org.apache.openejb.server.ServerServiceFilter.service(ServerServiceFilter.java:64) >>> at >>> org.apache.openejb.server.ServicePool.access$201(ServicePool.java:35) >>> at >>> org.apache.openejb.server.ServicePool$3.run(ServicePool.java:174) >>> at >>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) >>> at >>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) >>> at java.lang.Thread.run(Thread.java:724) >>> Caused by: org.apache.openejb.OpenEJBException: Error deploying >>> 'MessageListenerBean'. Exception: class >>> org.apache.openejb.OpenEJBException: Unable to create activation spec: >>> Invalid settings: subscriptionDurability cannot be set to: Durable when >>> destinationType is set to javax.jms.Queue as it is only valid when >>> destinationType is set to javax.jms.Topic. clientId must be set since >>> durable subscription was requested.: Unable to create activation spec: >>> Invalid settings: subscriptionDurability cannot be set to: Durable when >>> destinationType is set to javax.jms.Queue as it is only valid when >>> destinationType is set to javax.jms.Topic. clientId must be set since >>> durable subscription was requested. >>> at >>> org.apache.openejb.assembler.classic.Assembler.startEjbs(Assembler.java:974) >>> at >>> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:730) >>> ... 58 more >>> Caused by: org.apache.openejb.OpenEJBException: Unable to create >>> activation spec: Invalid settings: subscriptionDurability cannot be set to: >>> Durable when destinationType is set to javax.jms.Queue as it is only valid >>> when destinationType is set to javax.jms.Topic. clientId must be set since >>> durable subscription was requested. >>> at >>> org.apache.openejb.core.mdb.MdbContainer.createActivationSpec(MdbContainer.java:251) >>> at >>> org.apache.openejb.core.mdb.MdbContainer.deploy(MdbContainer.java:136) >>> at >>> org.apache.openejb.assembler.classic.Assembler.startEjbs(Assembler.java:961) >>> ... 59 more >>> Caused by: javax.resource.spi.InvalidPropertyException: Invalid >>> settings: subscriptionDurability cannot be set to: Durable when >>> destinationType is set to javax.jms.Queue as it is only valid when >>> destinationType is set to javax.jms.Topic. clientId must be set since >>> durable subscription was requested. >>> at >>> org.apache.activemq.ra.ActiveMQActivationSpec.validate(ActiveMQActivationSpec.java:136) >>> at >>> org.apache.openejb.core.mdb.MdbContainer.createActivationSpec(MdbContainer.java:229) >>> ... 61 more >>> >>> And here's my bean: >>> >>> @MessageDriven(mappedName = "TrueUpdate", >>> activationConfig = { >>> @ActivationConfigProperty(propertyName = >>> "messageSelector", >>> propertyValue = "manager = >>> true"), >>> @ActivationConfigProperty(propertyName = >>> "destinationType", >>> propertyValue = >>> "javax.jms.Topic"), >>> @ActivationConfigProperty(propertyName = "destination", >>> propertyValue = "TrueUpdate"), >>> @ActivationConfigProperty(propertyName = >>> "subscriptionDurability", >>> propertyValue = "Durable"), >>> @ActivationConfigProperty(propertyName = >>> "subscriptionName", >>> propertyValue = "TrueUpdate >>> Manager"), >>> }) >>> public class MessageListenerBean implements MessageListener { >>> ... >>> } >>> >>> What am I doing wrong here? >>> >>> Regards, >>> Christian Schlichtherle >>> >>> >>
