【发布时间】:2015-06-21 18:53:58
【问题描述】:
我有一个名为 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 在 sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1625) 在 _jsp._aniltest__jsp._jspService(_aniltest__jsp.java:93) 在 _jsp._aniltest__jsp._jspService(_aniltest__jsp.java:31) 在 com.caucho.jsp.JavaPage.service(JavaPage.java:64) 在 com.caucho.jsp.Page.pageservice(Page.java:548) 在 com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:194) 在 com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:156) 在 com.caucho.server.webapp.AccessLogFilterChain.doFilter(AccessLogFilterChain.java:95) 在 com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:289) 在 com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:838) 在 com.caucho.network.listen.TcpSocketLink.dispatchRequest(TcpSocketLink.java:1349) 在 com.caucho.network.listen.TcpSocketLink.handleRequest(TcpSocketLink.java:1305) 在 com.caucho.network.listen.TcpSocketLink.handleRequestsImpl(TcpSocketLink.java:1289) 在 com.caucho.network.listen.TcpSocketLink.handleRequests(TcpSocketLink.java:1197) 在 com.caucho.network.listen.TcpSocketLink.handleAcceptTaskImpl(TcpSocketLink.java:993) 在 com.caucho.network.listen.ConnectionTask.runThread(ConnectionTask.java:117) 在 com.caucho.network.listen.ConnectionTask.run(ConnectionTask.java:93) 在 com.caucho.network.listen.SocketLinkThreadLauncher.handleTasks(SocketLinkThreadLauncher.java:169) 在 com.caucho.network.listen.TcpSocketAcceptThread.run(TcpSocketAcceptThread.java:61) 在 com.caucho.env.thread2.ResinThread2.runTasks(ResinThread2.java:173) 在 com.caucho.env.thread2.ResinThread2.run(ResinThread2.java:118)虽然我可以在网络浏览器中毫无问题地访问文件http://localhost:80/admin/anil1.txt:我使用的是最新的 Resin 服务器。我完全陷入困境,无法弄清楚问题所在。
【问题讨论】:
-
80端口不是保留端口吗?
-
我不这么认为,因为我可以毫无问题地从浏览器访问文件。
-
尝试先通过aURL.openConnection()获取一个URLConnection对象,然后调用urlConnection.connect(),再调用urlConnection.getInputStream()
-
我厌倦了,但没有运气