salut,

je lis un livre sur javaee6 et j'ai un problème avec l'exemple concernant jms.
il consiste à créer 2 ressources JMS dans glassfish, une connection factory et une queue.
ça c'est fait, et j'ai verifié, les 2 ressources existent.

ensuite, il faut un client, qui est un MDB avec les bonnes annotations et une méthode onMessage.
ça aussi s'est bien déployé.

enfin il y a l'expéditeur (je précise que l'exemple consiste à envoyer un message d'un producteur à un consommateur via JMS...)
voici son code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
 
package lorry.msg_sender;
 
import java.util.Date;
import javax.annotation.Resource;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.MessageProducer;
import javax.jms.ObjectMessage;
import javax.jms.Queue;
import javax.jms.Session;
import librairies.OrderDTO;
 
/**
 * Hello world!
 *
 */
public class App 
{
    @Resource(mappedName="jms/javaee6/ConnectionFactory")
    private static ConnectionFactory connectionFactory;
 
    @Resource(mappedName="jms/javaee6/Queue")
    private static Queue queue;
 
 
    public static void main( String[] args )
    {
 
       Float totalAmount=Float.valueOf(args[0]);
       OrderDTO order=new OrderDTO(1234L, new Date(), "Laurent Voulzy", totalAmount);
       try{
           Connection con = connectionFactory.createConnection();
           Session session=con.createSession(false, Session.AUTO_ACKNOWLEDGE);
           MessageProducer producer=session.createProducer(queue);
           ObjectMessage msg=session.createObjectMessage();
           msg.setObject(order);
 
           msg.setFloatProperty("orderAmount", totalAmount);
           producer.send(msg);
           con.close();
 
 
 
 
       } catch (Exception e){
 
           e.printStackTrace();
       }
 
 
    }
}
et voici l'erreur :

java.lang.NullPointerException
at lorry.msg_sender.App.main(App.java:32)
la ligne 32 c'est où la connexion est créée : il n'y a pas d'injection de la connectionFactory.

la commande utilisée est : appclient -client monJar.jar 500.

pouvez-vous m'aider?