Tôi không thể nhận được javax.jms.ConnectionFactory
được tiêm vào máy khách JMS độc lập của mình. Tôi nhận được java.lang.NullPointerException
tại connectionFactory.createConnection()
trong mã bên dưới.JavaEE 6: Cách nạp tài nguyên JMS vào một máy khách JMS độc lập?
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();
}
}
}
Tôi đã tạo ra các máy kết nối tương ứng và Resource Destination tại mở MQ (MoM) sử dụng Glassfish 3.1 Admin Console.
Ai đó có thể giúp tôi hiểu tôi đang thiếu gì không?
'@ Resource' không hoạt động nhưng tìm kiếm bằng cách sử dụng tên JNDI. \t 'Ngữ cảnh jndiContext = new InitialContext(); \t \t Kết nốiKết nối nhà máyFactory = (ConnectionFactory) jndiContext.lookup ("jms/QueueConnectionFactory"); \t Hàng đợi đích = (Hàng đợi) jndiContext.lookup ("jms/ShippingRequestQueue"); ' – skip
Cảm ơn, điều này đã làm việc cho tôi. – Puckl