geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stephan Mehlhase <s.mehlh...@googlemail.com>
Subject Re: Message Driven Bean is not receiving messages
Date Wed, 26 Aug 2009 08:26:26 GMT
Hi,

Okay, so I tried the Example from the documentation. It works out of
the box. I then tried to change to the message queue I created and it
stopped working - so I guess something is wrong there. So here is the
deployment plan of the JMS Resources I created:

<?xml version="1.0" encoding="UTF-8"?>
<connector xmlns="http://geronimo.apache.org/xml/ns/j2ee/connector-1.2">
    <dep:environment
xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.2">
        <dep:moduleId>
            <dep:groupId>console.jms</dep:groupId>
            <dep:artifactId>Test</dep:artifactId>
            <dep:version>1.0</dep:version>
            <dep:type>rar</dep:type>
        </dep:moduleId>
        <dep:dependencies>
            <dep:dependency>
                <dep:groupId>org.apache.geronimo.configs</dep:groupId>
                <dep:artifactId>activemq-broker</dep:artifactId>
                <dep:type>car</dep:type>
            </dep:dependency>
        </dep:dependencies>
    </dep:environment>
    <resourceadapter>
        <resourceadapter-instance>
            <resourceadapter-name>Test</resourceadapter-name>
            <nam:workmanager
xmlns:nam="http://geronimo.apache.org/xml/ns/naming-1.2">
                <nam:gbean-link>DefaultWorkManager</nam:gbean-link>
            </nam:workmanager>
        </resourceadapter-instance>
        <outbound-resourceadapter>
            <connection-definition>

<connectionfactory-interface>javax.jms.ConnectionFactory</connectionfactory-interface>
                <connectiondefinition-instance>
                    <name>TestFactory</name>

<implemented-interface>javax.jms.QueueConnectionFactory</implemented-interface>

<implemented-interface>javax.jms.TopicConnectionFactory</implemented-interface>
                    <connectionmanager>
                        <xa-transaction>
                            <transaction-caching/>
                        </xa-transaction>
                        <single-pool>
                            <match-one/>
                        </single-pool>
                    </connectionmanager>
                </connectiondefinition-instance>
            </connection-definition>
        </outbound-resourceadapter>
    </resourceadapter>
    <adminobject>
        <adminobject-interface>javax.jms.Queue</adminobject-interface>
        <adminobject-class>org.apache.activemq.command.ActiveMQQueue</adminobject-class>
        <adminobject-instance>
            <message-destination-name>TestQueue</message-destination-name>
            <config-property-setting
name="PhysicalName">testqueue</config-property-setting>
        </adminobject-instance>
    </adminobject>
    <adminobject>
        <adminobject-interface>javax.jms.Topic</adminobject-interface>
        <adminobject-class>org.apache.activemq.command.ActiveMQTopic</adminobject-class>
    </adminobject>
</connector>

I basically just left the defaults in it. However, the Servlet seems
to work correctly as I see the following in the logs on hitting
submit:

2009-08-26 10:17:13,713 DEBUG [ActiveMQSession] Sending message:
ActiveMQTextMessage {commandId = 0, responseRequired = false,
messageId = ID:yoda-55927-1251270725979-3:25:1:1:4,
originalDestination = null, originalTransactionId = null, producerId =
ID:yoda-55927-1251270725979-3:25:1:1, destination = queue://testqueue,
transactionId = null, expiration = 0, timestamp = 1251274633713,
arrival = 0, correlationId = null, replyTo = null, persistent = true,
type = null, priority = 4, groupID = null, groupSequence = 0,
targetConsumerId = null, compressed = false, userID = null, content =
null, marshalledProperties = null, dataStructure = null,
redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties
= true, readOnlyBody = true, droppable = false, text = userid:ghjfgh}
2009-08-26 10:17:13,714 DEBUG [testqueue] No subscriptions registered,
will not dispatch message at this time.

So the message arrives at the queue but won't be dispatched because my
EJB is not registered. The plan for the EJB now looks like:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<openejb-jar xmlns="http://www.openejb.org/xml/ns/openejb-jar-2.2"
	xmlns:nam="http://geronimo.apache.org/xml/ns/naming-1.2"
xmlns:pkgen="http://www.openejb.org/xml/ns/pkgen-2.0"
	xmlns:sec="http://geronimo.apache.org/xml/ns/security-1.2"
xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.2">
	<sys:environment>
		<sys:moduleId>
			<sys:groupId>default</sys:groupId>
			<sys:artifactId>MessageDrivenBean</sys:artifactId>
			<sys:version>1.0</sys:version>
			<sys:type>car</sys:type>
		</sys:moduleId>
		<sys:dependencies>
			<sys:dependency>
				<sys:groupId>console.jms</sys:groupId>
				<sys:artifactId>Test</sys:artifactId>
				<sys:version>1.0</sys:version>
				<sys:type>rar</sys:type>
			</sys:dependency>
		</sys:dependencies>
	</sys:environment>
	<enterprise-beans>
		<message-driven>
			<ejb-name>AdminMDB</ejb-name>
			<nam:resource-adapter>
				<nam:resource-link>Test</nam:resource-link>
			</nam:resource-adapter>
			<activation-config>
				<activation-config-property>
					<activation-config-property-name>
						destination
					</activation-config-property-name>
					<activation-config-property-value>
						TestQueue
					</activation-config-property-value>
				</activation-config-property>
				<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>
		</message-driven>
	</enterprise-beans>
</openejb-jar>

(Sorry for spamming whole XML files here, I'm just not sure what is
relevant for the problem and what isn't)

The annotations of the MDB has been changed to
@MessageDriven(name="AdminMDB", activationConfig = {
	    @ActivationConfigProperty(propertyName="destinationType",
propertyValue="javax.jms.Queue"),
	    @ActivationConfigProperty(propertyName="destination",
propertyValue="TestQueue")
	})
The rest of the EJB code hasn't been changed by me.

Stephan

On Wed, Aug 26, 2009 at 09:33, Stephan
Mehlhase<s.mehlhase@googlemail.com> wrote:
> Hi,
>
> thanks, but unfortunately this leads to the following while deploying:
>
> Resource Adapter for MDB 'MDB'not found:
> ?j2eeType=JCAResourceAdapter,name=administeredObjectGroup#
> org.apache.geronimo.common.DeploymentException: Resource Adapter for
> MDB 'MDB'not found:
> ?j2eeType=JCAResourceAdapter,name=administeredObjectGroup#
>        at org.apache.geronimo.openejb.deployment.EjbModuleBuilder.setMdbContainerIds(EjbModuleBuilder.java:867)
>        at org.apache.geronimo.openejb.deployment.EjbModuleBuilder.addGBeans(EjbModuleBuilder.java:818)
>        at org.apache.geronimo.j2ee.deployment.EARConfigBuilder.buildConfiguration(EARConfigBuilder.java:647)
>        at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:255)
>        at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:134)
>        at sun.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)
>        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>        at java.lang.reflect.Method.invoke(Method.java:597)
>        at org.apache.geronimo.gbean.runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:34)
>        at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:124)
>        at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:867)
>        at org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:239)
>        at org.apache.geronimo.deployment.plugin.local.AbstractDeployCommand.doDeploy(AbstractDeployCommand.java:116)
>        at org.apache.geronimo.deployment.plugin.local.DistributeCommand.run(DistributeCommand.java:61)
>        at java.lang.Thread.run(Thread.java:619)
> Caused by: org.apache.geronimo.kernel.GBeanNotFoundException: No
> matches for referencePatterns:
> [?j2eeType=JCAResourceAdapter,name=administeredObjectGroup#]
>        at org.apache.geronimo.kernel.config.Configuration.findGBeanData(Configuration.java:683)
>        at org.apache.geronimo.kernel.config.Configuration.findGBean(Configuration.java:656)
>        at org.apache.geronimo.kernel.config.Configuration.findGBean(Configuration.java:635)
>        at org.apache.geronimo.deployment.DeploymentContext.findGBean(DeploymentContext.java:207)
>        at org.apache.geronimo.openejb.deployment.EjbModuleBuilder.setMdbContainerIds(EjbModuleBuilder.java:865)
>        ... 14 more
>
> Stephan
>
> On Tue, Aug 25, 2009 at 17:05, Jack Cai<greensight@gmail.com> wrote:
>>        <dep:environment>
>>                <dep:moduleId>
>>                        <dep:groupId>default</dep:groupId>
>>                        <dep:artifactId>TestEJB</dep:artifactId>
>>                        <dep:version>1.0</dep:version>
>>                        <dep:type>car</dep:type>
>>                </dep:moduleId>
>>                <dep:dependencies>
>>                        <dep:dependency>
>>                                <dep:groupId>org.apache.geronimo.configs
>> </dep:groupId>
>>                                <dep:artifactId>activemq-broker
>> </dep:artifactId>
>>                                <dep:type>car</dep:type>
>>                        </dep:dependency>
>>                </dep:dependencies>
>>        </dep:environment>
>>        <ejb:enterprise-beans>
>>                <ejb:message-driven>
>>                        <ejb:ejb-name>MDB</ejb:ejb-name>
>>                        <ejb:resource-adapter>
>>
>>  <ejb:resource-link>administeredObjectGroup</ejb:resource-link>
>>                        </ejb:resource-adapter>
>>                </ejb:message-driven>
>>        </ejb:enterprise-beans>
>> </ejb:openejb-jar>
>

Mime
View raw message