- 
        1. Re: JBoss 7.1.1 MDB with IBM MQ - MessageDriven Annotation not configurablesfcoy Jun 6, 2013 3:51 AM (in response to bharadwaja.dasari)Move this configuration into jboss-ejb3.xml, whose parser will evaluate EL expressions: {code:xml}... <message-driven> <ejb-name>...</ejb-name> <activation-config> <activation-config-property> <activation-config-property-name>hostName</activation-config-property-name> <activation-config-property-value>${mq.host}</activation-config-property-value> </activation-config-property> <activation-config-property> <activation-config-property-name>port</activation-config-property-name> <activation-config-property-value>${mq.port}</activation-config-property-value> </activation-config-property> <!-- etc --> </activation-config> </message-driven> ...{code} and then set the expression values as system properties in your configuration (standalone.xml, etc): {code:bash}$ ./bin/jboss-cli.sh --connect [standalone@localhost:9999 /] /system-property=mq.host:add(value=111.11.11.11) [standalone@localhost:9999 /] /system-property=mq.port:add(value=1111) [standalone@localhost:9999 /] ...etc {code} 
- 
        2. Re: JBoss 7.1.1 MDB with IBM MQ - MessageDriven Annotation not configurablegolovnin Jun 6, 2013 3:52 AM (in response to bharadwaja.dasari)Hi, that's easy. You must use deployment descriptors instead of annotations to configure you message driven bean. Your ejb-jar.xml should look like this: <?xml version="1.0" encoding="UTF-8"?> <ejb-jar xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd" version="3.0" > <enterprise-beans> <message-driven> <ejb-name>MyMDB</ejb-name> <ejb-class> com.foo.MyMDB </ejb-class> <messaging-type>javax.jms.MessageListener</messaging-type> <transaction-type>Container</transaction-type> <activation-config> <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-property> <activation-config-property-name> destination </activation-config-property-name> <activation-config-property-value> ${jms.queue.mymdb} </activation-config-property-value> </activation-config-property> <activation-config-property> <activation-config-property-name> useJNDI </activation-config-property-name> <activation-config-property-value> false </activation-config-property-value> </activation-config-property> <activation-config-property> <activation-config-property-name> channel </activation-config-property-name> <activation-config-property-value> ${jms.queue.manager.channel} </activation-config-property-value> </activation-config-property> <activation-config-property> <activation-config-property-name> hostName </activation-config-property-name> <activation-config-property-value> ${jms.queue.manager.host} </activation-config-property-value> </activation-config-property> <activation-config-property> <activation-config-property-name> queueManager </activation-config-property-name> <activation-config-property-value> ${jms.queue.manager.name} </activation-config-property-value> </activation-config-property> <activation-config-property> <activation-config-property-name> port </activation-config-property-name> <activation-config-property-value> ${jms.queue.manager.port} </activation-config-property-value> </activation-config-property> <activation-config-property> <activation-config-property-name> transportType </activation-config-property-name> <activation-config-property-value> CLIENT </activation-config-property-value> </activation-config-property> </activation-config> </message-driven> </enterprise-beans> </ejb-jar>Notice the values with ${...}? Those are the system properties which you should define in the standalone.xml. Create also jboss-ejb3.xml descriptor to connect you MDB to the resource adapter: <?xml version="1.0" encoding="UTF-8"?> <jboss:ejb-jar xmlns:jboss="http://www.jboss.com/xml/ns/javaee" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:mdb="urn:resource-adapter-binding" xmlns:sec="urn:security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee http://www.jboss.org/j2ee/schema/jboss-ejb3-2_0.xsd http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_1.xsd" version="3.1" impl-version="2.0" > <assembly-descriptor> <mdb:resource-adapter-binding> <ejb-name>MyMDB</ejb-name> <mdb:resource-adapter-name>wmq.jmsra.rar</mdb:resource-adapter-name> </mdb:resource-adapter-binding> </assembly-descriptor> </jboss:ejb-jar> And now in the standalone.xml define the system properties and activate properties replacement in the descriptors. Here is a snippet from standalone.xml: ...... <system-properties> <!-- JMS properties for ejb-jar.xml --> <property name="jms.queue.manager.channel" value="QUEUE_MANAGER_CHANNEL"/> <property name="jms.queue.manager.host" value="QUEUE_MANAGER_HOST"/> <property name="jms.queue.manager.name" value="QUEUE_MANAGER_NAME"/> <property name="jms.queue.manager.port" value="QUEUE_MANAGER_PORT"/> <property name="jms.queue.mymdb" value="MYMDB_QUEUE"/> </system-properties> ...... <subsystem xmlns="urn:jboss:domain:ee:1.1"> <spec-descriptor-property-replacement>true</spec-descriptor-property-replacement> <jboss-descriptor-property-replacement>true</jboss-descriptor-property-replacement> </subsystem> ...... Hope this helps. Best regards, Andrej Golovnin 
- 
        3. Re: JBoss 7.1.1 MDB with IBM MQ - MessageDriven Annotation not configurablebharadwaja.dasari Jun 6, 2013 8:43 AM (in response to golovnin)This might sound like a dumb question but ..do we have to create new ejb-jar.xml and jboss-ejb3.xml? Where should these two files reside like jboss-as-final/standalone/configuration folder? And in my Listener code I should also get rid of the @MessageDriven Annotation and just use @ResourceAdapter? 
- 
        4. Re: JBoss 7.1.1 MDB with IBM MQ - MessageDriven Annotation not configurablegolovnin Jun 6, 2013 9:48 AM (in response to bharadwaja.dasari)You can leave the @MessageDriven annotatioin on your message driven bean but drop all other annotations. The ejb-jar.xml and jboss-ejb3.xml must be palced in the META-INF folder of the JAR-file which contains the message driven bean. 
- 
        5. Re: JBoss 7.1.1 MDB with IBM MQ - MessageDriven Annotation not configurablebharadwaja.dasari Jun 6, 2013 10:57 AM (in response to golovnin)Andre, Thank you so much for the quick response. I have tried the steps that you have mentioned but I get the below error when starting jboss 09:53:32,978 ERROR [org.jboss.as.server] JBAS015956: Caught exception during boot: org.jboss.as.controller.persistence.ConfigurationPersistenceException: JBAS014676: Failed to parse configuration at org.jboss.as.controller.persistence.XmlConfigurationPersister.load(XmlConfigurationPersister.java:141) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final] at org.jboss.as.server.ServerService.boot(ServerService.java:266) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final] at org.jboss.as.controller.AbstractControllerService$1.run(AbstractControllerService.java:155) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final] at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_13] Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[127,3] Message: Unexpected element '{urn:jboss:domain:ee:1.1}subsystem' at org.jboss.staxmapper.XMLMapperImpl.processNested(XMLMapperImpl.java:108) [staxmapper-1.1.0.Final.jar:1.1.0.Final] at org.jboss.staxmapper.XMLExtendedStreamReaderImpl.handleAny(XMLExtendedStreamReaderImpl.java:69) [staxmapper-1.1.0.Final.jar:1.1.0.Final] at org.jboss.as.server.parsing.StandaloneXml.parseServerProfile(StandaloneXml.java:894) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final] at org.jboss.as.server.parsing.StandaloneXml.readServerElement_1_1(StandaloneXml.java:330) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final] at org.jboss.as.server.parsing.StandaloneXml.readElement(StandaloneXml.java:127) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final] at org.jboss.as.server.parsing.StandaloneXml.readElement(StandaloneXml.java:100) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final] at org.jboss.staxmapper.XMLMapperImpl.processNested(XMLMapperImpl.java:110) [staxmapper-1.1.0.Final.jar:1.1.0.Final] at org.jboss.staxmapper.XMLMapperImpl.parseDocument(XMLMapperImpl.java:69) [staxmapper-1.1.0.Final.jar:1.1.0.Final] at org.jboss.as.controller.persistence.XmlConfigurationPersister.load(XmlConfigurationPersister.java:133) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final] ... 3 more Can you please help? 
- 
        6. Re: JBoss 7.1.1 MDB with IBM MQ - MessageDriven Annotation not configurablesfcoy Jun 6, 2013 11:14 AM (in response to bharadwaja.dasari)Please attach ypur deployment descriptors. I'm not sure that ${blah} expressions are supported in the JEE standard descriptors (they haven't in the past, and it's not spec compliant), which is why I suggested using the jboss-ejb3.xml which provides this capability. 
- 
        7. Re: JBoss 7.1.1 MDB with IBM MQ - MessageDriven Annotation not configurablebharadwaja.dasari Jun 6, 2013 12:54 PM (in response to sfcoy)Hello Stephen, Thank you for the response. I actually tried what you have said earlier and that did not work. 
- 
        8. Re: JBoss 7.1.1 MDB with IBM MQ - MessageDriven Annotation not configurablegolovnin Jun 6, 2013 2:08 PM (in response to bharadwaja.dasari)1 of 1 people found this helpfulI'm sorry. I forgot to mention that you need at least JBoss 7.1.3 to get it working. @Stephen: It works. We use it in production for months now. You must just activate property replacement. 
- 
        9. Re: JBoss 7.1.1 MDB with IBM MQ - MessageDriven Annotation not configurablebharadwaja.dasari Jun 6, 2013 2:14 PM (in response to golovnin)I have downloaded 7.1.3 and will try it but we are not building it as JAR but building it as a WAR? Will this impact the location of the .xml files? 
- 
        10. Re: JBoss 7.1.1 MDB with IBM MQ - MessageDriven Annotation not configurablegolovnin Jun 6, 2013 2:59 PM (in response to bharadwaja.dasari)1 of 1 people found this helpfulYes, as per specification (EJB 3.1 Spec, Ch. 20.4) you must put the xml-files into WEB-INF folder of the WAR-file. 
- 
        11. Re: JBoss 7.1.1 MDB with IBM MQ - MessageDriven Annotation not configurablebharadwaja.dasari Jun 7, 2013 10:07 AM (in response to golovnin)Hello Andrej, This worked perfectly... with 7.1.3. 
 
     
    