gpt4 book ai didi

java - 如何通过部署在 JBoss 的 URL 打开没有扩展名的文件

转载 作者:行者123 更新时间:2023-11-28 22:57:04 24 4
gpt4 key购买 nike

需要通过 URL 读取没有任何扩展名的平面文件,无法获取此文件,因为浏览器(404)和 java(FileNotFoundException)未将文件作为资源打开。

import java.net.*;
import java.io.*;

public class URLTest {

public static void main(String[] args) {
/*Block 1: Reading a file "test.txt" (WITH extension) that works */
try{ System.out.println("Block 1");
URL url1 = new URL("http://localhost:8080/CtxPath/test.txt"); //file test.txt available at WebContent
BufferedReader in = new BufferedReader(new InputStreamReader(url1.openStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
System.out.println(inputLine);
in.close();
} catch(Exception e) { e.printStackTrace(); }

/* Block 2 : Reading the other one "test" (WITHOUT extension) that throws Exception */
try{ System.out.println("Block 2");
URL url2 = new URL("http://localhost:8080/CtxPath/test"); ////file test also available at WebContent
BufferedReader in = new BufferedReader(new InputStreamReader(url2.openStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
System.out.println(inputLine);
in.close();
} catch(Exception e) { e.printStackTrace(); }
}
}

输出

Block 1 File content from test.txt read successfully.Block 2java.io.FileNotFoundException: http://localhost:8080/CtxPath/test    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1624)    at java.net.URL.openStream(URL.java:1037)    at URLTest.main(URLTest.java:28) 

Jboss 5.1 Java 1.7

在没有扩展名的文件(测试)的打开 URL 上获取异常。位于相同位置且内容相似的另一个扩展名为 .txt 的文件 (test.txt) 打开时没有任何问题。

是否有任何特定于应用程序或特定于服务器的配置来允许提供不带扩展名的文件?

最佳答案

在servlet容器实现中,没有后缀“test”的东西不被当做文件,而是当做servlet映射。
可以下载tomcat的源码,jboss的逻辑类似,看看吧。
而且我认为你不应该做一个没有后缀的文件,如果你真的需要,然后把它放在WEB-INF/xxx/下,然后使用一个servlet来帮助读取它。

关于java - 如何通过部署在 JBoss 的 URL 打开没有扩展名的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24574046/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com