ejb 3.0 - Error on JMS Queue because of destination in websphere used by Message Driven Beans -
i getting following error:
application ebs_calc#ebs_calc_ejb.jar#mbintegrations has , usejndi, there no corresponding property on activationspec class jms/asqueue(com.ibm.ws.sib.api.jmsra.impl.jmsjcaactivationspecimpl) of resourceadapter cells/uswsa0102235node01cell/nodes/uswsa0102235node01/servers/server1/resources.xml#j2cresourceadapter_1364909976437. property ignored. may have undesirable effects.
activationspe w j2ca0161w: type of object referred supplied destination jndi name wrong. object must implement javax.jms.destination. destination jndi name was: jms/asqueue. supplied objects class was: {1}
activationspe e j2ca0137e: activationspec validate() method failed invalidpropertyexception. activationspec jms/asqueue (com.ibm.ws.sib.api.jmsra.impl.jmsjcaactivationspecimpl), belongs installed resourceadapter cells/uswsa0102235node01cell/nodes/uswsa0102235node01/servers/server1/resources.xml#j2cresourceadapter_1364909976437 , associated mdb application ebs_calc#ebs_calc_ejb.jar#mbintegrations. see following list of failed properties along values:
destination null destination null
...
cwsjr1181e: jms activation specification has invalid values - reason(s) failing validate jms activation specification are: [cwsjr1188e: destination on jms activation specification must given value, cwsjr1192e: jms activation specs using destination type of queue must have destination of type [com.ibm.websphere.sib.api.jms.jmsqueue] destination passed of type [null]]
i have configured accordingly queue , bus , destination in websphere
my java code looks follows:
@messagedriven(mappedname = "jms/asqueue", activationconfig = { @activationconfigproperty(propertyname = "connectionfactoryjndiname", propertyvalue = "jms/calcconnectionfactory"), @activationconfigproperty(propertyname = "destinationname", propertyvalue = "jms/calcinqueue"), @activationconfigproperty(propertyname = "destinationtype", propertyvalue = "javax.jms.queue") }) @resources ({ @resource(name="jms/calcconnectionfactory", mappedname="jms/calcconnectionfactory", // external jndi name type=javax.jms.connectionfactory.class) }) public class mbintegrations implements messagelistener { private static final string connection_factory_name = "jms/calcconnectionfactory"; private static final string destination_name = "jms/calcinqueue"; @resource private messagedrivencontext mdc; private static final logger logger = logger.getlogger(mbintegrations.class); public void onmessage(message inmessage) { textmessage msg = null; try { if (inmessage instanceof textmessage) { msg = (textmessage) inmessage; logger.info("message bean: message received: " + msg.gettext()); } else { logger.warn("message of wrong type: " + inmessage.getclass().getname()); } } catch (jmsexception e) { e.printstacktrace(); mdc.setrollbackonly(); } catch (throwable te) { te.printstacktrace(); } } }
and ibm binder
<message-driven name="mbintegrations"> <jca-adapter activation-spec-binding-name="jms/asqueue" destination-binding-name="jms/asqueue" /> <resource-ref name="jms/calcconnectionfactory" binding-name="jms/calcconnectionfactory" /> <resource-ref name="jdbc/oracleds" binding-name="jdbc/oracle" /> </message-driven>
i not sure doing wrong, help?
found problem in binder after reviewing: http://pic.dhe.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=%2fcom.ibm.websphere.ejbfep.multiplatform.doc%2finfo%2fae%2fae%2fcejb_bindingsejbfp.html
there said:
<jca-adapter activation-spec-binding-name= "jms/internalproviderspec" destination-binding-name="jms/servicequeue"/>
so in case have been:
... destination-binding-name="jms/calcinqueue" />
Comments
Post a Comment