Problema em criar um MDB [JBOSS 5.1.0 GA + ActiveMQ 5.2]

1 resposta
D

Estou querendo fazer um MDB para rodar no JBOSS.

Integrei o ActiveMQ com o JBOSS e criei as filas. A parte de recebimento de mensagens está funcionando corretamente.

Quando faço um servlet pra testar, funciona direitinho, mas quando rodo o MDB, o JBOSS dá o seguinte erro:

16:33:38,597 INFO [JmsActivation] Attempting to reconnect org.jboss.resource.adapter.jms.inflow.JmsActivationSpec@cf4b7f(ra=org.jboss.resource.adapter.jms.JmsResourceAdapter@a9f84a destination=queue/sonda destinationType=javax.jms.Queue tx=true durable=false reconnect=10 provider=java:/DefaultJMSProvider user=null maxMessages=1 minSession=1 maxSession=15 keepAlive=60000 useDLQ=true DLQHandler=org.jboss.resource.adapter.jms.inflow.dlq.GenericDLQHandler DLQJndiName=queue/DLQ DLQUser=null DLQMaxResent=5)

16:33:38,666 ERROR [JmsActivation] Unable to reconnect org.jboss.resource.adapter.jms.inflow.JmsActivationSpec@cf4b7f(ra=org.jboss.resource.adapter.jms.JmsResourceAdapter@a9f84a destination=queue/sonda destinationType=javax.jms.Queue tx=true durable=false reconnect=10 provider=java:/DefaultJMSProvider user=null maxMessages=1 minSession=1 maxSession=15 keepAlive=60000 useDLQ=true DLQHandler=org.jboss.resource.adapter.jms.inflow.dlq.GenericDLQHandler DLQJndiName=queue/DLQ DLQUser=null DLQMaxResent=5)
java.lang.ClassCastException: org.apache.activemq.command.ActiveMQQueue cannot be cast to org.jboss.jms.destination.JBossDestination
at org.jboss.jms.client.container.SessionAspect.handleCreateConnectionConsumer(SessionAspect.java:766)
at org.jboss.aop.advice.org.jboss.jms.client.container.SessionAspect_z_handleCreateConnectionConsumer_29907071.invoke(SessionAspect_z_handleCreateConnectionConsumer_29907071.java)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
at org.jboss.jms.client.container.ClosedInterceptor.invoke(ClosedInterceptor.java:170)
at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:86)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
at org.jboss.jms.client.delegate.ClientConnectionDelegate.createConnectionConsumer(ClientConnectionDelegate.java)
at org.jboss.jms.client.JBossConnection.createConnectionConsumer(JBossConnection.java:140)
at org.jboss.resource.adapter.jms.inflow.JmsServerSessionPool.setupConsumer(JmsServerSessionPool.java:289)
at org.jboss.resource.adapter.jms.inflow.JmsServerSessionPool.start(JmsServerSessionPool.java:89)
at org.jboss.resource.adapter.jms.inflow.JmsActivation.setupSessionPool(JmsActivation.java:656)
at org.jboss.resource.adapter.jms.inflow.JmsActivation.setup(JmsActivation.java:359)
at org.jboss.resource.adapter.jms.inflow.JmsActivation.handleFailure(JmsActivation.java:292)
at org.jboss.resource.adapter.jms.inflow.JmsActivation$SetupActivation.run(JmsActivation.java:733)
at org.jboss.resource.work.WorkWrapper.execute(WorkWrapper.java:205)
at org.jboss.util.threadpool.BasicTaskWrapper.run(BasicTaskWrapper.java:260)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Alguem sabe me dizer como arrumar isso?

MDB.java:
import javax.ejb.ActivationConfigProperty;
import javax.ejb.MessageDriven;
import javax.ejb.TransactionManagement;
import javax.ejb.TransactionManagementType;
import javax.jms.Message;
import javax.jms.MessageListener;

import org.jboss.ejb3.annotation.ResourceAdapter;

/**
 * Message-Driven Bean implementation class for: MDBSonda
 *
 */
@MessageDriven(
		activationConfig = { 
		@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
		@ActivationConfigProperty(propertyName = "destination", propertyValue = "queue/sonda"),
		@ActivationConfigProperty(propertyName = "useJNDI", propertyValue = "true"),
		@ActivationConfigProperty(propertyName = "connectionFactoryJndiName", propertyValue="java:QueueConnectionFactory"),
		})
@TransactionManagement(TransactionManagementType.BEAN)
public class MDBSonda implements MessageListener {

    /**
     * Default constructor. 
     */
    public MDBSonda() {
        // TODO Auto-generated constructor stub
    }
	
	/**
     * @see MessageListener#onMessage(Message)
     */
    public void onMessage(Message message) {
               
    }

}

Valeu!

1 Resposta

P

Talvez se encaixe neste problema.

https://jira.jboss.org/jira/browse/JBMESSAGING-988

Criado 24 de novembro de 2009
Ultima resposta 24 de nov. de 2009
Respostas 1
Participantes 2