JavaEE 6: Comment injecter des Ressources JMS dans un standalone client JMS?

Je ne peux pas obtenir javax.jms.ConnectionFactory injecté dans mes autonome client JMS.
Je reçois un java.lang.NullPointerException à connectionFactory.createConnection() dans le code ci-dessous.

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();
        }        
    }

}

J'ai créé la Connexion correspondante de l'Usine et de la Destination des Ressources à Ouvrir MQ (MoM) à l'aide de Glassfish 3.1 Console d'administration.

Quelqu'un pourrait-il m'aider à comprendre ce qui me manque?

@Resource ne fonctionne pas, mais en regardant vers le haut en utilisant le nom JNDI. Context jndiContext = new InitialContext(); ConnectionFactory connectionFactory = (ConnectionFactory) jndiContext.lookup("jms/QueueConnectionFactory"); Queue destination = (Queue) jndiContext.lookup("jms/ShippingRequestQueue");
Merci, cela a fonctionné pour moi.

OriginalL'auteur skip | 2011-09-07