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
>>
>>
>

Reply via email to