IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java EE Discussion :

Lecture des messages d'un topic


Sujet :

Java EE

  1. #1
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 93
    Points : 66
    Points
    66
    Par défaut Lecture des messages d'un topic
    Bonjour tout le monde.
    Je suis entrain de tester le fonctionnement des JMS a travers OpenJMS pour un prochain projet.Je veux simuler le publishing/subscribing la partie publishing marche bien j'arrive bien a jouté des messages a mon topic mais pour ce qui est de la partie subscribing j'y a arrive pas.
    voici mon 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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
     
    package publicher_subscriber;
     
    /**
     * Redistribution and use of this software and associated documentation
     * ("Software"), with or without modification, are permitted provided
     * that the following conditions are met:
     *
     * 1. Redistributions of source code must retain copyright
     *    statements and notices.  Redistributions must also contain a
     *    copy of this document.
     *
     * 2. Redistributions in binary form must reproduce the
     *    above copyright notice, this list of conditions and the
     *    following disclaimer in the documentation and/or other
     *    materials provided with the distribution.
     *
     * 3. The name "Exolab" must not be used to endorse or promote
     *    products derived from this Software without prior written
     *    permission of Exoffice Technologies.  For written permission,
     *    please contact info@exolab.org.
     *
     * 4. Products derived from this Software may not be called "Exolab"
     *    nor may "Exolab" appear in their names without prior written
     *    permission of Exoffice Technologies. Exolab is a registered
     *    trademark of Exoffice Technologies.
     *
     * 5. Due credit should be given to the Exolab Project
     *    (http://www.exolab.org/).
     *
     * THIS SOFTWARE IS PROVIDED BY EXOFFICE TECHNOLOGIES AND CONTRIBUTORS
     * ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
     * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
     * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
     * EXOFFICE TECHNOLOGIES OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
     * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
     * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
     * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
     * OF THE POSSIBILITY OF SUCH DAMAGE.
     *
     * Copyright 2004 (C) Exoffice Technologies Inc. All Rights Reserved.
     *
     * $Id: DurableSubscriber.java,v 1.3 2005/11/18 03:28:00 tanderson Exp $
     */
     
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
    import javax.jms.Session;
    import javax.jms.Topic;
    import javax.jms.TopicConnection;
    import javax.jms.TopicConnectionFactory;
    import javax.jms.TopicSession;
    import javax.jms.TopicSubscriber;
    import javax.jms.Message;
    import javax.jms.TextMessage;
    import javax.jms.JMSException;
     
     
     
     
    public class DurableSubscriber11 {
     
        public static void main(String[] args) {
            Context context = null;
            TopicConnectionFactory factory = null;
            TopicConnection connection = null;
            String factoryName = "ConnectionFactory";
            String topicName = "united";
            Topic topic = null;
            int count = 1;
            TopicSession session = null;
            TopicSubscriber subscriber = null;
            //String subscriptionName = "rubADubSub7";
     
     
     
     
     
            try {
                // create the JNDI initial context.
                context = new InitialContext();
     
                // look up the ConnectionFactory
                factory = (TopicConnectionFactory) context.lookup(factoryName);
     
                // look up the topic
                topic = (Topic) context.lookup(topicName);
     
                // create the connection
                connection = factory.createTopicConnection();
     
                // create the session
                session = (TopicSession) connection.createTopicSession(
                    false, Session.AUTO_ACKNOWLEDGE);
     
                // create the durable subscriber
                subscriber = session.createSubscriber(topic);
     
                //session.createTopic("TP")
     
                // start the connection, to enable message receipt
                connection.start();
     
                for (int i = 0; i < count; ++i) {
                    Message message = subscriber.receive();
                    if (message instanceof TextMessage) {
                        TextMessage text = (TextMessage) message;
                        System.out.println("Received: " + text.getText());
                    } else if (message != null) {
                        System.out.println("Received non text message");
                    }
                }
            } catch (JMSException exception) {
                exception.printStackTrace();
            } catch (NamingException exception) {
                exception.printStackTrace();
            } finally {
                // close the context
                if (context != null) {
                    try {
                        context.close();
                    } catch (NamingException exception) {
                        exception.printStackTrace();
                    }
                }
     
                // close the connection
                if (connection != null) {
                    try {
                        connection.close();
                    } catch (JMSException exception) {
                        exception.printStackTrace();
                    }
                }
            }
        }
     
    }
    Le client reste bloqué dans le recieve(mode synchrone)ce qui implique qu'il ne trouve pas de message or ces derniers existe bien.

  2. #2
    Membre VIP Avatar de kalysto
    Profil pro
    Développeur
    Inscrit en
    Mars 2003
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mars 2003
    Messages : 442
    Points : 568
    Points
    568
    Par défaut
    Je ne comprends pas bien pourquoi tu dis vouloir "simuler" ...
    Quel est ton contexte ?

    Je veux dire, tu ne montres pas la partie publish des messages... est ce que tes messages sont bien publiés ? est ce que ton publisher est sous transaction et aussi en attente a la fin de la methode ?

Discussions similaires

  1. Lecture des messages reçus et encodage
    Par RootsRagga dans le forum Langage
    Réponses: 2
    Dernier message: 07/05/2010, 15h46
  2. Pb de lecture des liens hypertexte dans messages
    Par Denis21 dans le forum Thunderbird
    Réponses: 1
    Dernier message: 31/01/2009, 15h09
  3. [phpBB] Lecture des Messages Privés par l'administrateur
    Par Bonhomme dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 16/11/2007, 15h57
  4. Faites des messages corrects !!!
    Par Alacazam dans le forum C++
    Réponses: 6
    Dernier message: 23/03/2006, 15h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo