OpenEJB ignores configuration properties for Topic resource -


i'm trying use topic message driven bean on openejb. 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 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 ear file get:

exception: class org.apache.openejb.openejbexception: unable create activation spec: invalid settings: subscriptiondurability cannot set to: durable when destinationtype set javax.jms.queue valid when destinationtype set javax.jms.topic. clientid must set since durable subscription requested.: unable create activation spec: invalid settings: subscriptiondurability cannot set to: durable when destinationtype set javax.jms.queue valid when destinationtype set javax.jms.topic. clientid must set since durable subscription requested.         @ org.apache.openejb.assembler.classic.assembler.createapplication(assembler.java:836)         @ org.apache.openejb.assembler.classic.assembler.createapplication(assembler.java:546)         @ org.apache.openejb.assembler.classic.assembler.createapplication(assembler.java:542)         @ org.apache.openejb.assembler.deployerejb.deploy(deployerejb.java:195)         @ org.apache.openejb.assembler.deployerejb.deploy(deployerejb.java:104)         @ sun.reflect.nativemethodaccessorimpl.invoke0(native method)         @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57)         @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43)         @ java.lang.reflect.method.invoke(method.java:606)         @ org.apache.openejb.core.interceptor.reflectioninvocationcontext$invocation.invoke(reflectioninvocationcontext.java:181)         @ org.apache.openejb.core.interceptor.reflectioninvocationcontext.proceed(reflectioninvocationcontext.java:163)         @ org.apache.openejb.security.internal.internalsecurityinterceptor.invoke(internalsecurityinterceptor.java:34)         @ sun.reflect.nativemethodaccessorimpl.invoke0(native method)         @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57)         @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43)         @ java.lang.reflect.method.invoke(method.java:606)         @ org.apache.openejb.core.interceptor.reflectioninvocationcontext$invocation.invoke(reflectioninvocationcontext.java:181)         @ org.apache.openejb.core.interceptor.reflectioninvocationcontext.proceed(reflectioninvocationcontext.java:163)         @ org.apache.openejb.cdi.cdiinterceptor.invoke(cdiinterceptor.java:126)         @ org.apache.openejb.cdi.cdiinterceptor.access$000(cdiinterceptor.java:42)         @ org.apache.openejb.cdi.cdiinterceptor$1.call(cdiinterceptor.java:63)         @ org.apache.openejb.cdi.cdiinterceptor.aroundinvoke(cdiinterceptor.java:69)         @ sun.reflect.nativemethodaccessorimpl.invoke0(native method)         @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57)         @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43)         @ java.lang.reflect.method.invoke(method.java:606)         @ org.apache.openejb.core.interceptor.reflectioninvocationcontext$invocation.invoke(reflectioninvocationcontext.java:181)         @ org.apache.openejb.core.interceptor.reflectioninvocationcontext.proceed(reflectioninvocationcontext.java:163)         @ org.apache.openejb.monitoring.statsinterceptor.record(statsinterceptor.java:176)         @ org.apache.openejb.monitoring.statsinterceptor.invoke(statsinterceptor.java:95)         @ sun.reflect.nativemethodaccessorimpl.invoke0(native method)         @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57)         @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43)         @ java.lang.reflect.method.invoke(method.java:606)         @ org.apache.openejb.core.interceptor.reflectioninvocationcontext$invocation.invoke(reflectioninvocationcontext.java:181)         @ org.apache.openejb.core.interceptor.reflectioninvocationcontext.proceed(reflectioninvocationcontext.java:163)         @ org.apache.openejb.core.interceptor.interceptorstack.invoke(interceptorstack.java:138)         @ org.apache.openejb.core.stateless.statelesscontainer._invoke(statelesscontainer.java:239)         @ org.apache.openejb.core.stateless.statelesscontainer.invoke(statelesscontainer.java:191)         @ org.apache.openejb.server.ejbd.ejbrequesthandler.doejbobject_business_method(ejbrequesthandler.java:290)         @ org.apache.openejb.server.ejbd.ejbrequesthandler.processrequest(ejbrequesthandler.java:140)         @ org.apache.openejb.server.ejbd.ejbdaemon.processejbrequest(ejbdaemon.java:267)         @ org.apache.openejb.server.ejbd.ejbdaemon.service(ejbdaemon.java:191)         @ org.apache.openejb.server.ejbd.ejbserver.service(ejbserver.java:81)         @ org.apache.openejb.server.ejbd.keepaliveserver$session.service(keepaliveserver.java:273)         @ org.apache.openejb.server.ejbd.keepaliveserver$session.access$1000(keepaliveserver.java:192)         @ org.apache.openejb.server.ejbd.keepaliveserver.service(keepaliveserver.java:326)         @ org.apache.openejb.server.ejbd.ejbserver.service(ejbserver.java:72)         @ org.apache.openejb.server.serverservicefilter.service(serverservicefilter.java:64)         @ org.apache.openejb.server.serverservicefilter.service(serverservicefilter.java:64)         @ org.apache.openejb.server.servicestats.service(servicestats.java:54)         @ org.apache.openejb.server.serverservicefilter.service(serverservicefilter.java:64)         @ org.apache.openejb.server.servicelogger.service(servicelogger.java:92)         @ org.apache.openejb.server.serverservicefilter.service(serverservicefilter.java:64)         @ org.apache.openejb.server.servicepool.access$201(servicepool.java:35)         @ org.apache.openejb.server.servicepool$3.run(servicepool.java:174)         @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1145)         @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:615)         @ java.lang.thread.run(thread.java:724) caused by: org.apache.openejb.openejbexception: error deploying 'messagelistenerbean'.  exception: class org.apache.openejb.openejbexception: unable create activation spec: invalid settings: subscriptiondurability cannot set to: durable when destinationtype set javax.jms.queue valid when destinationtype set javax.jms.topic. clientid must set since durable subscription requested.: unable create activation spec: invalid settings: subscriptiondurability cannot set to: durable when destinationtype set javax.jms.queue valid when destinationtype set javax.jms.topic. clientid must set since durable subscription requested.         @ org.apache.openejb.assembler.classic.assembler.startejbs(assembler.java:974)         @ org.apache.openejb.assembler.classic.assembler.createapplication(assembler.java:730)         ... 58 more caused by: org.apache.openejb.openejbexception: unable create activation spec: invalid settings: subscriptiondurability cannot set to: durable when destinationtype set javax.jms.queue valid when destinationtype set javax.jms.topic. clientid must set since durable subscription requested.         @ org.apache.openejb.core.mdb.mdbcontainer.createactivationspec(mdbcontainer.java:251)         @ org.apache.openejb.core.mdb.mdbcontainer.deploy(mdbcontainer.java:136)         @ org.apache.openejb.assembler.classic.assembler.startejbs(assembler.java:961)         ... 59 more caused by: javax.resource.spi.invalidpropertyexception: invalid settings: subscriptiondurability cannot set to: durable when destinationtype set javax.jms.queue valid when destinationtype set javax.jms.topic. clientid must set since durable subscription requested.         @ org.apache.activemq.ra.activemqactivationspec.validate(activemqactivationspec.java:136)         @ org.apache.openejb.core.mdb.mdbcontainer.createactivationspec(mdbcontainer.java:229)         ... 61 more 

and here's 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 doing wrong here?

i met same problem, , tried following things. works:

  1. set clientid

     @activationconfigproperty (propertyname = "clientid", propertyvalue = "clientidxxx") 
  2. update "destinationtype" "destinationtype"


Comments

Popular posts from this blog

assembly - 8086 TASM: Illegal Indexing Mode -

Java, LWJGL, OpenGL 1.1, decoding BufferedImage to Bytebuffer and binding to OpenGL across classes -

javascript - addthis share facebook and google+ url -