4

Web アプリケーション (Tomcat 5.5.x) 内から CSV ファイルを読み込もうとしていますが、「FileNotFoundExceptions:

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

絶対パスを指定できる/指定する必要はないと思います (アクセスできない Linux/Tomcat サーバーにデプロイされます)。また、必要なファイル プロトコル ('jar:file', classpath:等)。

ファイルは「**/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 + "');");

(ただし、Web アプリではこれをテストしませんでした)

于 2011-01-25T07:20:19.050 に答える