Lorsque je lance une application client enrichi avec JNLP, elle envoie des requêtes aux serveurs distants. Certaines de ces requêtes sont destinées à vérifier si les serveurs sont disponibles ou non. S'ils ne sont pas disponibles, le client saisit, par exemple, UnknownHostException
et c'est un cas totalement valide et attendu.Boîte de dialogue d'erreur vide au démarrage dans le cas d'UnknownHostException
Cependant, si je spécifie les paramètres de proxy dans un panneau de configuration Java (Windows-> Démarrer-> Paramètres-> Panneau de configuration> Java) Je me suit dialogue d'erreur au démarrage:
Comme vous pourriez voir, ce dialogue est complètement inutile et cela n'aide pas à découvrir ce qui ne va pas. J'ai également essayé de définir un niveau de trace dans une console Java à 5, mais cela ne m'a pas non plus fourni d'informations utiles.
Cette boîte de dialogue s'affiche avec l'exception qui est interceptée dans l'application de démarrage. Je répète il est pris immédiatement après il est lancé par HttpClient
instance (commons-httpclient-3.1) et ce dialogue n'est pas affiché par l'application (de plus il a complètement différent look'n'feel). Voici une citation de code:
try {
HttpClient client = new HttpClient(connectionManager);
GetMethod getMethod = new GetMethod();
getMethod.setPath(targetUrl.getPath());
HostConfiguration hostConfiguration = getHostConfiguration();
client.executeMethod(hostConfiguration, getMethod);
} catch (Exception e) {
// some logging
}
executeMethod
lancers francs UnknownHostException
ou ConnectTimeoutException
ici. Si j'active la 'Connexion directe' dans la boîte de dialogue "Panneau de configuration Java-> Paramètres réseau", le problème n'est pas reproductible, mais le problème est qu'il n'est pas toujours possible d'utiliser une connexion directe.
J'ai découvert que le problème n'est pas reproductible sur Java 1.6, mais malheureusement je dois le résoudre d'une manière ou d'une autre sans mise à niveau. Je comprends que c'est un problème très étrange et ressemble plus à un bug dans JVM, mais j'espère que vous pourriez me conseiller n'importe quoi pour supprimer ces dialogues agaçants en quelque sorte.