[JMS] null pointer exception error

NewJavaLearner Messages postés 36 Date d'inscription mercredi 22 août 2007 Statut Membre Dernière intervention 28 avril 2012 - 14 sept. 2007 à 14:47
NewJavaLearner Messages postés 36 Date d'inscription mercredi 22 août 2007 Statut Membre Dernière intervention 28 avril 2012 - 19 sept. 2007 à 13:03
salut tt le monde
je travaille avec jms (mon premier exemple). J'ai trouvé en excecutant le code ci dessus une erreur de null pointer exception.
Je travaille avec Sun as et j'ai créé mes ressources qui sont declarres dans le code.
La ligne qui genere l'exception c la ligne en rouge
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.Queue;
import javax.jms.Topic;
import javax.jms.Connection;
import javax.jms.Session;
import javax.jms.MessageProducer;
import javax.jms.TextMessage;
import javax.jms.JMSException;
import javax.annotation.Resource;




/**
 * The Producer class consists only of a main method,
 * which sends several messages to a queue or topic.
 *
 * Run this program in conjunction with SynchConsumer or
 * AsynchConsumer. Specify "queue" or "topic" on the
 * command line when you run the program.  By default, the
 * program sends one message.  Specify a number after the
 * destination name to send that number of messages.
 */
public class Producer {
    @Resource(mappedName = "jms/ConnectionFactory")
    private static ConnectionFactory connectionFactory;
    @Resource(mappedName = "jms/Queue")
    private static Queue queue;
    @Resource(mappedName = "jms/Topic")
    private static Topic topic;


    /**
     * Main method.
     *
     * @param args     the destination used by the example
     *                 and, optionally, the number of
     *                 messages to send
     */
    public static void main(String[] args) {
        final int NUM_MSGS;
        Connection connection = null;


        if ((args.length < 1) || (args.length > 2)) {
            System.err.println(
                    "Program takes one or two arguments: "
                    + "<dest_type> [<number-of-messages>]");
            System.exit(1);
        }


        String destType = args[0];
        System.out.println("Destination type is " + destType);


        if (!(destType.equals("queue") || destType.equals("topic"))) {
            System.err.println("Argument must be "queue" or " + ""topic"");
            System.exit(1);
        }


        if (args.length == 2) {
            NUM_MSGS = (new Integer(args[1])).intValue();
        } else {
            NUM_MSGS = 1;
        }


        Destination dest = null;


        try {
            if (destType.equals("queue")) {
                dest = (Destination) queue;
            } else {
                dest = (Destination) topic;
            }
        } catch (Exception e) {
            System.err.println("Error setting destination: " + e.toString());
            e.printStackTrace();
            System.exit(1);
        }


        /*
         * Create connection.
         * Create session from connection; false means session is
         * not transacted.
         * Create producer and text message.
         * Send messages, varying text slightly.
         * Send end-of-messages message.
         * Finally, close connection.
         */
        try {
            connection = connectionFactory.createConnection();


            Session session = connection.createSession(
                        false,
                        Session.AUTO_ACKNOWLEDGE);


            MessageProducer producer = session.createProducer(dest);
            TextMessage message = session.createTextMessage();


            for (int i = 0; i < NUM_MSGS; i++) {
                message.setText("This is message " + (i + 1));
                System.out.println("Sending message: " + message.getText());
                producer.send(message);
            }


            /*
             * Send a non-text control message indicating end of
             * messages.
             */
            producer.send(session.createMessage());
        } catch (JMSException e) {
            System.err.println("Exception occurred: " + e.toString());
        } finally {
            if (connection != null) {
                try {
                    connection.close();
                } catch (JMSException e) {
                }
            }
        }
    }
}



Apprendre c'est vivre.

2 réponses

NewJavaLearner Messages postés 36 Date d'inscription mercredi 22 août 2007 Statut Membre Dernière intervention 28 avril 2012
17 sept. 2007 à 14:19
Salut,
Je me suis retourné au pres de mon serveur de messages. J'ai essayé de faire un ping
(j'ai cliqué sur le bouton ping) et voilà ce qui se passe. J'ai cette erreur

Operation 'JMSPing' failed in 'resources' Config Mbean. Target exception message: No local string defined

Je ne sais pas c'est du à quoi  et comment corriger cette erreur.
J'ai besoin d'une aide urgente.
merci

Apprendre c'est vivre.
0
NewJavaLearner Messages postés 36 Date d'inscription mercredi 22 août 2007 Statut Membre Dernière intervention 28 avril 2012
19 sept. 2007 à 13:03
Y a t-il pas quelqu'un qui puisse m'aider.
En effet, j'ai résolu le problème de ping ce qui fait que mon serveur jms marche bien. Alors que le probleme de  NullPointerException persiste encore.
Je suis le tutorial de SUN comme j'ai dit c'est le code de l'exemple producer du chapitre [file:///C:/Documents%20and%20Settings/ennarolf/Desktop/javaee-5-doc-tutorial-1%5B1%5D.0_03/javaeetutorial5/doc/JMS.html#wp84181 Chapter 31:   The Java Message Service API]  qui reside à l'url suivante
C:\Documents and Settings\ennarolf\Desktop\javaee-5-doc-tutorial-1[1].0_03\javaeetutorial5\doc\index.html
Merci de m'aider
Apprendre c'est vivre.
0
Rejoignez-nous