4

我正在尝试从 Web 应用程序(Tomcat 5.5.x)中读取 CSV 文件,而我得到的只是“FileNotFoundExceptions”:

dbStatement.executeQuery("SELECT * FROM CSVREAD('csvfile.csv');");

我认为我不能/不需要指定绝对路径(它将被部署到我无法访问的 Linux/Tomcat 服务器中)并且不确定所需的文件协议('jar:file',类路径: ETC)。

该文件位于“**/WEB-INF/classes/csvfile.csv”下

关于我需要传递给 CSVREAD() 的路径结构的任何想法?

谢谢

富有的

4

2 回答 2

2

也许您可以尝试动态构建查询,首先使用ServletContext.getRealPath("/WEB-INF/classes/csvfile.csv").

于 2011-01-25T04:36:17.090 回答
1

H2 目前不支持从类路径加载文件。但是,您应该能够使用以下方法获取资源的 URL:

String url = getClass().getClassLoader().getResource("csvfile.csv").toString();

然后你可以使用这个 URL(在我的例子中它是一个以“file:”开头的 URL),如下所示:

dbStatement.executeQuery("SELECT * FROM CSVREAD('" + url + "');");

(但是我没有在网络应用程序中对此进行测试)

于 2011-01-25T07:20:19.050 回答