2015-04-15 5 views
0

У меня есть файл JSP с именем aniltest.jsp, который следующий код:URLConnection FileNotFoundException на HTTP порт 80

<% 
    try { 
     URL aURL = new URL("http://localhost:80/admin/anil1.txt"); 

     BufferedReader in = new BufferedReader(new InputStreamReader(aURL.openStream())); 

     String inputLine; 

     while ((inputLine = in.readLine()) != null) 
      System.out.println("content of anil1.txt: " + inputLine); 

     in.close(); 
    } catch (IOException e) { 
     System.out.println("Error reading content of url"); 
     e.printStackTrace(); 
    } 
%> 

В приведенном выше коде я пытаюсь прочитать текстовый файл с именем anil1.txt, который расположен на http://localhost:80/admin/anil1.txt

я получаю ниже ошибки, когда я бегу: http://localhost:80/aniltest.jsp

 
java.io.FileNotFoundException: http://localhost:80/admin/anil1.txt 
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1625) 
    at _jsp._aniltest__jsp._jspService(_aniltest__jsp.java:93) 
    at _jsp._aniltest__jsp._jspService(_aniltest__jsp.java:31) 
    at com.caucho.jsp.JavaPage.service(JavaPage.java:64) 
    at com.caucho.jsp.Page.pageservice(Page.java:548) 
    at com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:194) 
    at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:156) 
    at com.caucho.server.webapp.AccessLogFilterChain.doFilter(AccessLogFilterChain.java:95) 
    at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:289) 
    at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:838) 
    at com.caucho.network.listen.TcpSocketLink.dispatchRequest(TcpSocketLink.java:1349) 
    at com.caucho.network.listen.TcpSocketLink.handleRequest(TcpSocketLink.java:1305) 
    at com.caucho.network.listen.TcpSocketLink.handleRequestsImpl(TcpSocketLink.java:1289) 
    at com.caucho.network.listen.TcpSocketLink.handleRequests(TcpSocketLink.java:1197) 
    at com.caucho.network.listen.TcpSocketLink.handleAcceptTaskImpl(TcpSocketLink.java:993) 
    at com.caucho.network.listen.ConnectionTask.runThread(ConnectionTask.java:117) 
    at com.caucho.network.listen.ConnectionTask.run(ConnectionTask.java:93) 
    at com.caucho.network.listen.SocketLinkThreadLauncher.handleTasks(SocketLinkThreadLauncher.java:169) 
    at com.caucho.network.listen.TcpSocketAcceptThread.run(TcpSocketAcceptThread.java:61) 
    at com.caucho.env.thread2.ResinThread2.runTasks(ResinThread2.java:173) 
    at com.caucho.env.thread2.ResinThread2.run(ResinThread2.java:118) 

Хотя я могу получить доступ к файлу http://localhost:80/admin/anil1.txt в веб-браузере без проблем: я использую последний сервер Resin. Я полностью застрял и не могу понять, в чем проблема.

+0

Является ли порт 80 не зарезервированным портом? – Msk

+0

Я так не думаю, потому что я могу без проблем получить доступ к файлу из браузера. – Dreamer

+0

Попытайтесь получить объект URLConnection сначала с помощью aURL.openConnection(), затем вызовите urlConnection.connect(), а затем urlConnection.getInputStream() –

ответ

0

Попробуйте

URLConnection uCon = aUrl.openConnection(); 
InputStream is = uCon.getInputStream(); 

затем прочитать байты из InputStream

+0

Что вы имеете в виду? – Dreamer

+0

Попробуйте создать файл в каталоге http: // localhost: 80/admin/и посмотреть, может ли он это сделать –

+0

Я уже создал файл anil1.txt на localhost: 80/admin – Dreamer

0

код, кажется, не имеют каких-либо проблем. Вы можете проверить, разрешено ли localhost в другом месте, вместо этого вы можете попробовать 127.0.0.1. Упоминающий порт не является обязательным, он также должен работать иначе (80 по умолчанию).

Попробуйте обнюхивать запрос и ответ с помощью проводов, если проблема не исчезнет.

Является ли URL защищен любой аутентификацией? Попробуйте очистить cookie браузера и кеш и инициировать новый запрос.

+0

Нет URL-адреса не защищены какой-либо аутентификацией. Когда я пытаюсь выполнить 127.0.0.1, это не сработает. Пробовал очищающий браузер и свежий запрос все еще не работает. – Dreamer

+0

Как проверить локальные разрешения в другом месте? – Dreamer

+0

Можете ли вы попробовать написать тот же код на Java-классе вместо JSP и попробовать, если он работает? То, что вы испытываете, необычно и, следовательно, мы пытаемся странно. –

0

Привет, ребята. Исключение не было из-за Skype, который использовал порт 80 для входящих соединений. После чистки порта он работает хорошо. Спасибо за вашу помощь.

+0

Это интересно. Из моего предыдущего комментария - То, что вы испытываете, необычно, и поэтому мы пытаемся запутать странные способы. Любопытно, как это работает, когда вы пытались использовать браузер. Можете ли вы попробовать браузер, поддерживающий работу Skype? –

+0

Когда мой Skype работает, я не могу получить к нему доступ, как я сказал, потому что Skype использовал порт 80. Когда я меняю порт Skype, он работает хорошо. – Dreamer