Bonjour,
j'utilise JNDI pour accéder à un serveur de messages et j'ai l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
javax.naming.CommunicationException: DNS error [Root exception is java.net.PortUnreachableException: ICMP Port Unreachable]; remaining name 'cn=QueueConnectionFactory'
à la ligne surlignée suivante :
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
    private Hashtable env_;
    private InitialContext context_;
    private QueueConnectionFactory qcf_;
    private QueueConnection connection_;
    private QueueSession session_;
    private QueueReceiver receiver_;
    private Queue queue_;

    public static final String JNDI_PREFIX = "cn=";
    public static final String INITIAL_CONTEXT_FACTORY = "com.sun.jndi.dns.DnsContextFactory";
    public static final String PROVIDER_URL = "dns://SRVTSMNT01:7222";
    public static final String QUEUE_CONNECTION_FACTORY = "QueueConnectionFactory";
    public static final String QUEUE = "fr.dbmtr.CC10.rts";

    public void mytest ()
    {
    

        env_ = new Hashtable();
        env_.put(Context.INITIAL_CONTEXT_FACTORY, INITIAL_CONTEXT_FACTORY);
        env_.put(Context.PROVIDER_URL, PROVIDER_URL);

        try {
        	// Tentative de connection via JNDI
            context_ = new InitialContext(env_);
            qcf_ = (javax.jms.QueueConnectionFactory)context_.lookup(JNDI_PREFIX + QUEUE_CONNECTION_FACTORY);
            connection_ = qcf_.createQueueConnection("admin", "");
            session_ = connection_.createQueueSession(false, Session.CLIENT_ACKNOWLEDGE);
            queue_ = (javax.jms.Queue)context_.lookup(JNDI_PREFIX + QUEUE);
            receiver_ = session_.createReceiver(queue_);

            try {
            	// Connection à la queue
                connection_.start();
                
                // Timer pour lire les messages
                Timer t = new Timer ();
                ReaderJMSMessageTask task = new ReaderJMSMessageTask();
                // Toutes les 5 secondes, j'accède à la Queue
                t.schedule(task, 1500, 5000);
            }
            catch (javax.jms.JMSException jms) {
                jms.printStackTrace();
            }

        }
        catch (javax.naming.NamingException ne) {
            ne.printStackTrace();
        }
        catch (javax.jms.JMSException jms) {
            jms.printStackTrace();
        }
        catch (Throwable t)
		{
        	t.printStackTrace();
		}
    }
Pourtant le nom de la bécane est correct ; j'y ai accès (via d'autres applications depuis mon poste de travail), j'ai même remplacé le nom de la bécane par son adresse IP rien n'y fait ; je ne vois pas pourquoi j'ai une exception "serveur inaccessible". Auriez-vous une idée à me soumettre svp ?
Merci