java.net.UnknownHostException: C (sous windows)
Publié le 3 Février 2010
Avec tomcat je rencontre l'exception java.net.UnknownHostException: C quand j'essaie de faire un java.net.PlainSocketImpl.connect().
Le problème est que le parser java attend une url de la forme :
Donc dans ce cas java croit que le protocol est "C" (d'où le "C" dans l'exeption ;-).
Comme il s'agit d'un accès direct à un fichier, on peut utiliser le protocol "File" ou bien écrire directement le chemin (comme ce que j'avais essayé de faire).
Mais tous les chemins doivent commencer par un "/" (et oui même sous windows), ce qui donne:
ou
Attention il y a bien 3 "/" ici:
- 2 pour pour le protocole "File://"
- 1 pour le chemin "/C:/..."
Petite explication: Normalement c'est le hostname qui se trouve entre le 2ème et le 3ème "/" mais comme il n'y en a pas ici, les 3 "/" se suivent directement.
java.net.UnknownHostException: C at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:153) at java.net.Socket.connect(Socket.java:452) at java.net.Socket.connect(Socket.java:402) at ...
L'url est un fait un nom de fichier sous windows, c'est à dire quelque chose dans ce gout-là:C:/monChemin/monFichierLe problème est que le parser java attend une url de la forme :
protocole://hostname/FileDonc dans ce cas java croit que le protocol est "C" (d'où le "C" dans l'exeption ;-).
Comme il s'agit d'un accès direct à un fichier, on peut utiliser le protocol "File" ou bien écrire directement le chemin (comme ce que j'avais essayé de faire).
Mais tous les chemins doivent commencer par un "/" (et oui même sous windows), ce qui donne:
/C:/monChemin/monFichierou
File:///C:/monChemin/monFichierAttention il y a bien 3 "/" ici:
- 2 pour pour le protocole "File://"
- 1 pour le chemin "/C:/..."
Petite explication: Normalement c'est le hostname qui se trouve entre le 2ème et le 3ème "/" mais comme il n'y en a pas ici, les 3 "/" se suivent directement.