JNDI/JMS connection à un serveur de messagerie
Bonjour,
j'utilise JNDI pour accéder à un serveur de messages et j'ai l'erreur suivante :
Code:
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:
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