Non riesco ad ottenere javax.jms.ConnectionFactory
iniettato nel mio client JMS standalone. Ottengo uno java.lang.NullPointerException
allo connectionFactory.createConnection()
nel codice qui sotto.JavaEE 6: Come iniettare la risorsa JMS in un client JMS autonomo?
JmsClient.java
public class JmsClient {
@Resource(mappedName="jms/QueueConnectionFactory")
private static ConnectionFactory connectionFactory;
@Resource(mappedName="jms/ShippingRequestQueue")
private static Destination destination;
public static void main(String[] args) {
try {
Connection connection = connectionFactory.createConnection();
connection.start();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
MessageProducer producer = session.createProducer(destination);
ObjectMessage message = session.createObjectMessage();
ShippingRequestQueue shippingRequest = new ShippingRequestQueue(1, "107, Old Street");
message.setObject(shippingRequest);
producer.send(message);
session.close();
connection.close();
System.out.println("Shipping request message sent ..");
} catch (Throwable ex) {
ex.printStackTrace();
}
}
}
ho creato la fabbrica di collegamento corrispondente e delle risorse della destinazione aperto MQ (MoM) utilizzando Glassfish 3.1 Admin Console.
Qualcuno potrebbe aiutarmi a capire cosa mi manca?
'@ Resource' non funziona, ma la ricerca avviene utilizzando il nome JNDI. \t 'Context jndiContext = new InitialContext(); \t \t ConnectionFactory connectionFactory = (ConnectionFactory) jndiContext.lookup ("jms/QueueConnectionFactory"); \t Queue destination = (Queue) jndiContext.lookup ("jms/ShippingRequestQueue"); ' – skip
Grazie, ha funzionato per me. – Puckl