JMS not bound?

0 respostas
diogo.gonzaga

Quando faço o deploy de um MDB (listado logo abaixo), o JBOSS retorna essa mensagem de erro:

09:33:36,538 INFO  [JmsActivation] Attempting to reconnect org.jboss.resource.adapter.jms.inflow.JmsActivationSpec@154ec5(ra=org.jboss.resource.adapter.jms.JmsResourceAdapter@11e1aa5 destination=jms/ShippingRequestQueue isTopic=false 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=0)

09:33:36,551 ERROR [JmsActivation] Unable to reconnect org.jboss.resource.adapter.jms.inflow.JmsActivationSpec@154ec5(ra=org.jboss.resource.adapter.jms.JmsResourceAdapter@11e1aa5 destination=jms/ShippingRequestQueue isTopic=false 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=0)

javax.naming.NameNotFoundException: jms not bound

at org.jnp.server.NamingServer.getBinding(NamingServer.java:529)

at org.jnp.server.NamingServer.getBinding(NamingServer.java:537)

at org.jnp.server.NamingServer.getObject(NamingServer.java:543)

at org.jnp.server.NamingServer.lookup(NamingServer.java:267)

at sun.reflect.GeneratedMethodAccessor86.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:585)

at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)

at sun.rmi.transport.Transport$1.run(Transport.java:153)

at java.security.AccessController.doPrivileged(Native Method)

at sun.rmi.transport.Transport.serviceCall(Transport.java:149)

at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466)

at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)

at java.lang.Thread.run(Thread.java:595)

at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:247)

at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:223)

at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:126)

at org.jnp.server.NamingServer_Stub.lookup(Unknown Source)

at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:625)

at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:587)

at javax.naming.InitialContext.lookup(InitialContext.java:351)

at org.jboss.util.naming.Util.lookup(Util.java:215)

at org.jboss.resource.adapter.jms.inflow.JmsActivation.setupDestination(JmsActivation.java:399)

at org.jboss.resource.adapter.jms.inflow.JmsActivation.setup(JmsActivation.java:306)

at org.jboss.resource.adapter.jms.inflow.JmsActivation.handleFailure(JmsActivation.java:250)

at org.jboss.resource.adapter.jms.inflow.JmsActivation$SetupActivation.run(JmsActivation.java:593)

at org.jboss.resource.work.WorkWrapper.execute(WorkWrapper.java:204)

at org.jboss.util.threadpool.BasicTaskWrapper.run(BasicTaskWrapper.java:275)

at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:743)

at java.lang.Thread.run(Thread.java:595)

Minha classe é:

package ejb3.ejb3inaction.actionbazaar.buslogic;

import java.sql.Connection;

import java.sql.SQLException;

import java.sql.Statement;
import javax.annotation.PostConstruct;

import javax.annotation.PreDestroy;

import javax.annotation.Resource;

import javax.ejb.ActivationConfigProperty;

import javax.ejb.MessageDriven;

import javax.ejb.MessageDrivenContext;

import javax.jms.JMSException;

import javax.jms.Message;

import javax.jms.MessageListener;

import javax.jms.ObjectMessage;

import javax.sql.DataSource;

import org.jboss.annotation.ejb.ResourceAdapter;

@MessageDriven(name = ShippingRequestProcessor, activationConfig = {

@ActivationConfigProperty(propertyName = destinationType, propertyValue = javax.jms.Queue),

@ActivationConfigProperty(propertyName = destination, propertyValue = jms/ShippingRequestQueue) })

public class ShippingRequestProcessorMDB implements MessageListener {

private Connection connection;
private DataSource dataSource;

@Resource
private MessageDrivenContext context;

@Resource(name = "jdbc/TurtleDS", mappedName = "java:/DefaultDS")
public void setDataSource(DataSource dataSource) {
	this.dataSource = dataSource;
}

@PostConstruct
public void initialize() {
	try {
		connection = dataSource.getConnection();
	} catch (SQLException sqle) {
		sqle.printStackTrace();
	}
}

@PreDestroy
public void cleanup() {
	try {
		connection.close();
		connection = null;
	} catch (SQLException sqle) {
		sqle.printStackTrace();
	}
}

public void onMessage(Message message) {
	try {
		ObjectMessage objectMessage = (ObjectMessage) message;
		ShippingRequest shippingRequest = (ShippingRequest) objectMessage
				.getObject();
		processShippingRequest(shippingRequest);
		System.out.println("Shipping request processed.");
	} catch (JMSException jmse) {
		jmse.printStackTrace();
		context.setRollbackOnly();
	} catch (SQLException sqle) {
		sqle.printStackTrace();
		context.setRollbackOnly();
	}
}

private void processShippingRequest(ShippingRequest request)
		throws SQLException {
	Statement statement = connection.createStatement();
	String sql = "INSERT INTO " + "SHIPPING_REQUESTS(" + "ITEM, "
			+ "SHIPPING_ADDRESS, " + "SHIPPING_METHOD, "
			+ "INSURANCE_AMOUNT) " + "VALUES ( " + request.getItem() + ", "
			+ "'" + request.getShippingAddress() + "', " + "' "
			+ request.getShippingMethod() + "', "
			+ request.getInsuranceAmount() + ")";
	System.out.println(sql);
	statement.execute(sql);
}

}

Criado 15 de dezembro de 2008
Respostas 0
Participantes 1