eap 7 MDB error upon startup
swarsa Feb 17, 2017 4:59 PMAfter implementing a working QueueConnectionFactory and Queue in a resource adapter, I'm now trying to get my MDB working to listen for asynchronous messages on a Topic. I have this working in WebSphere, this is just porting over to JBoss EAP7. I have an MDB class created by the wizard in JBoss Developer studio with the following annotations:
@MessageDriven(
activationConfig = {
@ActivationConfigProperty(propertyName = "destination", propertyValue = "java:/jms/XxxxxxxTopic"),
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Topic"),
@ActivationConfigProperty(propertyName = "clientID", propertyValue = "XXXXXXXXX"),
@ActivationConfigProperty(propertyName = "subscriptionDurability", propertyValue = "Durable"),
@ActivationConfigProperty(propertyName = "messageSelector", propertyValue = "responderProcessId = 'XXXX'")
},
mappedName = "XxxxxxxTopic"
)
@TransactionManagement(TransactionManagementType.BEAN)
public class XXXXXXXXXXXXX implements MessageListener {
Then I have the following resource adapter configuration in the standalone.xml:
<subsystem xmlns="urn:jboss:domain:resource-adapters:4.0">
<resource-adapters>
<resource-adapter id="webmjmsrarar">
<module slot="main" id="com.softwareag.webMethods.broker"/>
<config-property name="JndiProperties">
java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory,java.naming.provider.url=ldap://xxxxxxxxxxxxxxx:nnn
</config-property>
<connection-definitions>
<connection-definition class-name="com.sun.genericra.outbound.ManagedTopicConnectionFactory" jndi-name="java:/XXXXXXXX" pool-name="XXXXXXXXXXX">
<config-property name="ProviderIntegrationMode">
jndi
</config-property>
<config-property name="ConnectionFactoryJndiName">
cn=XXXXXXXXXXXXXXou=xxxxxxx,ou=xxxxxxxx,ou=xxxxx,dc=xxxxx,dc=xxx
</config-property>
<config-property name="UserName">
cn=xxxxxx,ou=xxxxxxx,ou=xxxxxx,dc=xxxxxx,dc=xxxx
</config-property>
<config-property name="JndiProperties">
java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory,java.naming.provider.url=ldap://xxxxxxxxxxxxxxxxxx:nnn
</config-property>
<config-property name="Password">
xxxxxxxxxxx
</config-property>
<pool>
<initial-pool-size>0</initial-pool-size>
</pool>
</connection-definition>
<connection-definition class-name="com.sun.genericra.outbound.ManagedQueueConnectionFactory" jndi-name="java:/.....
......
</connection-definition>
</connection-definitions>
<admin-objects>
<admin-object class-name="com.sun.genericra.outbound.QueueProxy" jndi-name="java:/jms/.............
.............
</admin-object>
<admin-object class-name="com.sun.genericra.outbound.TopicProxy" jndi-name="java:/jms/XXXXXXXXXXXXXXTopic" use-java-context="true" pool-name="XXXXXXXXXXXXXXTopic">
<config-property name="DestinationJndiName">
cn=XXXXXXXXXXXXXXTopic,ou=xxxxxxxx,ou=xxxxxxxxxxx,ou=xxxxxxx,dc=xxxxxxxx,dc=xxxx
</config-property>
</admin-object>
</admin-objects>
</resource-adapter>
</resource-adapters>
</subsystem>
<subsystem xmlns="urn:jboss:domain:ejb3:4.0">
<session-bean>
<stateless>
<bean-instance-pool-ref pool-name="slsb-strict-max-pool"/>
</stateless>
<stateful default-access-timeout="5000" cache-ref="simple" passivation-disabled-cache-ref="simple"/>
<singleton default-access-timeout="5000"/>
</session-bean>
<mdb>
<resource-adapter-ref resource-adapter-name="webmjmsrarar"/>
<bean-instance-pool-ref pool-name="mdb-strict-max-pool"/>
</mdb>
<pools>
<bean-instance-pools>
<strict-max-pool name="slsb-strict-max-pool" derive-size="from-worker-pools" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/>
<strict-max-pool name="mdb-strict-max-pool" derive-size="from-cpu-count" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/>
</bean-instance-pools>
</pools>
<caches>
<cache name="simple"/>
<cache name="distributable" passivation-store-ref="infinispan" aliases="passivating clustered"/>
</caches>
<passivation-stores>
<passivation-store name="infinispan" cache-container="ejb" max-size="10000"/>
</passivation-stores>
<async thread-pool-name="default"/>
<timer-service thread-pool-name="default" default-data-store="default-file-store">
<data-stores>
<file-data-store name="default-file-store" path="timer-service-data" relative-to="jboss.server.data.dir"/>
</data-stores>
</timer-service>
<remote connector-ref="http-remoting-connector" thread-pool-name="default"/>
<thread-pools>
<thread-pool name="default">
<max-threads count="10"/>
<keepalive-time time="100" unit="milliseconds"/>
</thread-pool>
</thread-pools>
<default-security-domain value="other"/>
<default-missing-method-permissions-deny-access value="true"/>
<log-system-exceptions value="true"/>
</subsystem>
Then, additionally, I have the following jboss-ejb3.xml:
<jboss xmlns="http://www.jboss.com/xml/ns/javaee" xmlns:jee="http://java.sun.com/xml/ns/javaee"
xmlns:mdb="urn:resource-adapter-binding">
<jee:assembly-descriptor>
<mdb:resource-adapter-binding>
<jee:ejb-name>xxxxxxxxxxxx</jee:ejb-name>
<mdb:resource-adapter-name>webmjmsrarar</mdb:resource-adapter-name>
</mdb:resource-adapter-binding>
</jee:assembly-descriptor>
</jboss>
With all this configuration, I'm getting the following errors upon server startup:
14:22:41,042 WARN [org.jboss.as.ejb3] (MSC service thread 1-7) WFLYEJB0006: ActivationConfigProperty destination will be ignored since it is not allowed by resource adapter: webmjmsrarar
14:22:41,062 INFO [org.jboss.as.ejb3] (MSC service thread 1-7) WFLYEJB0042: Started message driven bean 'XXXXXXXXXX' with 'webmjmsrarar' resource adapter
2017-02-17 14:52:08,247 FINE [com.sun.genericjmsra] (ServerService Thread Pool -- 58) com.sun.genericra.inbound.ActivationSpec@4ee37470{ConnectionFactoryClassName = com.webmethods.jms.impl.WmConnectionFactoryImpl},{QueueConnectionFactoryClassName = com.webmethods.jms.impl.WmQueueConnectionFactoryImpl},{TopicConnectionFactoryClassName = com.webmethods.jms.impl.WmTopicConnectionFactoryImpl},{XAConnectionFactoryClassName = null},{XAQueueConnectionFactoryClassName = null},{XATopicConnectionFactoryClassName = null},{QueueClassName = com.webmethods.jms.impl.WmQueueImpl},{TopicClassName = com.webmethods.jms.impl.WmTopicImpl},{UnifiedDestinationClassName = null},{ConnectionFactoryProperties = null},{JndiProperties = java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory,java.naming.provider.url=ldap://xxxxxxxxxxx:nnnn},{ProviderIntegrationMode = jndi},{CommonSetterMethodName = null},{SupportsXA = false},{ForceDelayedTxn = true},{DeliveryType = null},{RedeliveryInterval = 0},{RedeliveryAttempts = 0},{ClientID = XXXXXXXXXX},{MessageSelector = responderProcessId = 'XXXXXX'},{SubscriptionDurability = Durable},{ConnectionFactoryJNDIName = null},{SubscriptionName = null},{DestinationJNDIName = null},{DestinationType = javax.jms.Topic},{DeadMessageDestinationType = javax.jms.Destination},{MaxPoolSize = 8},{DestinationProperties = null},{DeadMessageDestinationJndiName = null},{DeadMessageConnectionFactoryJndiName = null},{DeadMessageConnectionFactoryProperties = null},{DeadMessageDestinationClassName = null},{DeadMessageDestinationProperties = null},{SendBadMessagesToDMD = false},{EndpointReleaseTimeOut = 180},{InstanceCount = 1},{LoadBalancingRequired = true},{Instance ID = 0},{CustomLoadBalancingMessageSelector = },{ShareClientID = false}{DeliveryType = null}
2017-02-17 14:52:08,250 FINE [com.sun.genericjmsra] (ServerService Thread Pool -- 58) com.sun.genericra.inbound.ActivationSpec@4ee37470{ConnectionFactoryClassName = com.webmethods.jms.impl.WmConnectionFactoryImpl},{QueueConnectionFactoryClassName = com.webmethods.jms.impl.WmQueueConnectionFactoryImpl},{TopicConnectionFactoryClassName = com.webmethods.jms.impl.WmTopicConnectionFactoryImpl},{XAConnectionFactoryClassName = null},{XAQueueConnectionFactoryClassName = null},{XATopicConnectionFactoryClassName = null},{QueueClassName = com.webmethods.jms.impl.WmQueueImpl},{TopicClassName = com.webmethods.jms.impl.WmTopicImpl},{UnifiedDestinationClassName = null},{ConnectionFactoryProperties = null},{JndiProperties = java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory,java.naming.provider.url=ldap://xxxxxxxxxxxxxxxxx:nnn},{ProviderIntegrationMode = jndi},{CommonSetterMethodName = null},{SupportsXA = false},{ForceDelayedTxn = true},{DeliveryType = null},{RedeliveryInterval = 0},{RedeliveryAttempts = 0},{ClientID = XXXXXXXXXXXXXXXXX},{MessageSelector = responderProcessId = 'XXXXX'},{SubscriptionDurability = Durable},{ConnectionFactoryJNDIName = null},{SubscriptionName = null},{DestinationJNDIName = null},{DestinationType = javax.jms.Topic},{DeadMessageDestinationType = javax.jms.Destination},{MaxPoolSize = 8},{DestinationProperties = null},{DeadMessageDestinationJndiName = null},{DeadMessageConnectionFactoryJndiName = null},{DeadMessageConnectionFactoryProperties = null},{DeadMessageDestinationClassName = null},{DeadMessageDestinationProperties = null},{SendBadMessagesToDMD = false},{EndpointReleaseTimeOut = 180},{InstanceCount = 1},{LoadBalancingRequired = true},{Instance ID = 0},{CustomLoadBalancingMessageSelector = },{ShareClientID = false}{DeliveryType = null}
2017-02-17 14:52:08,250 INFO [stdout] (ServerService Thread Pool -- 58) com.sun.genericjmsra Enter validate
2017-02-17 14:52:08,250 FINE [com.sun.genericjmsra] (ServerService Thread Pool -- 58) parseToProperties:java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory,java.naming.provider.url=ldap://xxxxxxxxxxxxxx:nnnnn delimited:, seperator:=
14:22:41,070 INFO [stdout] (ServerService Thread Pool -- 62) com.sun.genericjmsra Enter validate
14:22:41,071 INFO [stdout] (ServerService Thread Pool -- 62) com.sun.genericjmsra getConnectionFactoryJndiName=null
14:22:41,088 ERROR [org.jboss.msc.service.fail] (ServerService Thread Pool -- 62) MSC000001: Failed to start service jboss.deployment.subunit."XXXXXXXXXXX.ear"."XXXXXXXXXMDB.jar".componentXXXXXXXXX.START: org.jboss.msc.service.StartException in service jboss.deployment.subunit."XXXXXXXXXXX.ear"."XXXXXXXXXXMDB.jar".component.XXXXXXXXXX.START: java.lang.RuntimeException: javax.resource.spi.InvalidPropertyException
at org.jboss.as.ee.component.ComponentStartService$1.run(ComponentStartService.java:57)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
at org.jboss.threads.JBossThread.run(JBossThread.java:320)
Caused by: java.lang.RuntimeException: javax.resource.spi.InvalidPropertyException
at org.jboss.as.ejb3.component.messagedriven.MessageDrivenComponent.activate(MessageDrivenComponent.java:268)
at org.jboss.as.ejb3.component.messagedriven.MessageDrivenComponent.start(MessageDrivenComponent.java:233)
at org.jboss.as.ee.component.ComponentStartService$1.run(ComponentStartService.java:54)
... 6 more
Caused by: javax.resource.spi.InvalidPropertyException
at com.sun.genericra.util.ExceptionUtils.newInvalidPropertyException(ExceptionUtils.java:42)
at com.sun.genericra.util.ObjectBuilderFactory$JndiObjectBuilder.createObject(ObjectBuilderFactory.java:99)
at com.sun.genericra.util.ObjectBuilder.build(ObjectBuilder.java:99)
at com.sun.genericra.inbound.AbstractConsumer.initializeAdministeredObjects(AbstractConsumer.java:91)
at com.sun.genericra.inbound.AbstractConsumer.<init>(AbstractConsumer.java:56)
at com.sun.genericra.inbound.async.EndpointConsumer.<init>(EndpointConsumer.java:57)
at com.sun.genericra.inbound.EndpointConsumerFactory.createEndpointConsumer(EndpointConsumerFactory.java:38)
at com.sun.genericra.GenericJMSRA.endpointActivation(GenericJMSRA.java:215)
at org.jboss.jca.core.rar.EndpointImpl.activate(EndpointImpl.java:194)
at org.jboss.as.ejb3.component.messagedriven.MessageDrivenComponent.activate(MessageDrivenComponent.java:266)
... 8 more
Caused by: java.lang.NullPointerException
at org.jboss.as.naming.InitialContext.getURLScheme(InitialContext.java:160)
at org.jboss.as.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:128)
at javax.naming.InitialContext.lookup(InitialContext.java:417)
at javax.naming.InitialContext.lookup(InitialContext.java:417)
at com.sun.genericra.util.ObjectBuilderFactory$JndiObjectBuilder.createObject(ObjectBuilderFactory.java:97)
... 16 more
Any clue what I have configured wrong?
Thanks,
Steve