Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

WebAP内のPOJOからfileを読み込みたい

現在,Struts2を使ってWebAPを作成しているのですが、この中のPOJOのjavaからfileを読み込む処理がうまくいかなくて困っています。

具体的に言うと、
TestSite\WEB-INF\classes\dto\test.javaから、
TestSite\WEB-INF\classes\test.xmlを読み込みたいのですが、
「Could not find resource」というエラーがでます。

やってみた対策としては、
・パスを"../test.xml"に書き換る
・パスを"C:/software/study/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/TestSite/WEB-INF/classes/test.xml"
に書き換える
・上記の/を\\に書き換える
です。

何かお気づきの点がありましたら、ご指摘いただけると幸いです。

8

回答

7615

閲覧

8件の回答

評価

0

一番最初に確認するべきことは、
自分がどこにいるのか。
"."のRealPathを取得してみては。

それにしても、
拡張子が*.javaって、コンパイルはどうなってるの?
Eclipseを使っているのなら、普通は、
*.javaはsrc以下にあって、
classesにあるのは、
*.classの拡張子のファイルのはずだが。

src以下に*.propertiesや*.xmlを置くことは、
普通にあるだろうが、
Eclipseは、そんなものまで、
オブジェクトの出力先フォルダに移動してくれない。

評価

0

お返事ありがとうございます。
この問題は先ほど自己解決できました。お返事おくれてすいません。

この問題の原因はここに書いていないiBatisのAPIを使ってxmlを読み込もうとしていたのですが、このAPI特有の性質が原因でした。
お手数をおかけしてしまって申し訳ありません。

ただ一点、本題とはややそれますがわからない点がございまして、
<<"."のRealPathを取得してみては。
このことなんですが、このクラスはPOJOなのでHttpServeletを継承していません。この場合どのようにすればこのRealPathを取得できますか?
私も自分がどこにいるのかを知りたくて色々探してみたのですがやり方がわかりません。

再度お手数をおかけいたしますが、ご教授いただけると幸いです。

評価

0

さあ。
"."でFileを作って、フルパスを取ってみては。

評価

0

iBatisはよく知りませんが、
> 「Could not find resource」というエラーがでます
ということならクラスパス下からリソースとして取得
しようとしている処理なのではないかと推測します。
この場合は、クラスパスの通ったclassesフォルダ直下に
test.xmlがいるので「/test.xml」と設定するのでは
ないでしょうか。

あと、不良社員さんの
>src以下に*.propertiesや*.xmlを置くことは、
>普通にあるだろうが、
>Eclipseは、そんなものまで、
>オブジェクトの出力先フォルダに移動してくれない。

意図的に除外しない限り出力先フォルダに
移動されませんでしたっけ。
メッセージリソースファイルとかは手動で移した記憶が
ありませんが。

評価

0

>意図的に除外しない限り出力先フォルダに
>移動されませんでしたっけ。

そうだったっけ・・・。
そうか、Antの話と混じってるんだ。
申し訳ない。

評価

0

あれ?コピーしないのは.javaのことじゃなかっ
たの?
.xmlの話?

評価

0

*.propertiesとか*.xmlとかの話ですぜ。

少なくとも、俺が書いたのは。

評価

0

なるほど。

>拡張子が*.javaって、コンパイルはどうなってるの?
から
>オブジェクトの出力先フォルダに移動してくれない。
まで一続きだと思ってた。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。