Bonjour,
j'utilise JNDI pour accéder à un serveur de messages et j'ai l'erreur suivante :
à la ligne surlignée 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'
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 ?
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(); } }
Merci
Partager