HTTP端口80上的URLConnection FileNotFoundException

时间:2015-04-15 17:11:33

标签: java jsp resin

我有一个名为aniltest.jsp的JSP文件,其中包含以下代码:

<%
    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服务器。我完全陷入困境,无法弄清楚问题是什么。

3 个答案:

答案 0 :(得分:0)

试试这个

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

然后从输入流中读取字节

答案 1 :(得分:0)

代码似乎没有任何问题。您可以检查localhost是否解析到其他任何地方,您可以尝试127.0.0.1。提及端口不是强制性的,它也应该工作(默认为80)。

如果问题仍然存在,请尝试使用wireshark嗅探请求和响应。

网址是否受到任何身份验证的保护?尝试清除浏览器cookie和缓存并发起新的请求。

答案 2 :(得分:0)

嘿伙计文件未发现异常是因为Skype使用端口80进行传入连接。在查看港口后,它运作良好。谢谢你的帮助。