• ベストアンサー

Eclipse+Strutsでのxml修正時に"指定されたファイルが見つかりません。"とエラーメッセージが表示されてしまいます。

恐らく、超基本的な事になってしまうので質問をためらいましたが、 探し続けて一週間も経ってしまったので、最終手段としてここに質問させて頂く事にしました。 恥ずかしい限りですが質問させて下さい。 Eclipse+Strutsからxml操作を行う際に、 ・プロジェクトを基準にした相対パスを記述した外部ファイルを用意して  EclipseのProject配下に置いたxmlファイルを操作したいのですが、 ・絶対パスでしかxmlファイルが認識されない。 という所で悩んでいます。 ユーザが自分の名前をウェブのオンライン画面からテキストボックスに入力して Submitボタンをクリックすると、 システム側では既存の人員管理表のようなxmlファイルにその名前がDOMで追記される、 というアプリケーションをStrutsでの作成にチャレンジしていますが、 ここでアプリケーションの処理の遷移を  (1)a.jsp→(2)b.do→(3)b.class→(4)c.jsp とし、(3)b.classに、xmlの追記処理の為、 追記対象となるxmlの定義について下記のようにコーディングしました。 ---- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); String uri = "sample1.xml"; Node root = builder.parse(uri); (中略) ---- この処理の実行時に下記のエラーメッセージが表示されます。 ---- 致命的: サーブレット action のServlet.service()が例外を投げました java.io.FileNotFoundException: C:\Program Files\Apache Software Foundation\Tomcat 5.5\sample1.xml (指定されたファイルが見つかりません。) ---- ・絶対パスを指定した場合 ・C:\Program Files\Apache Software Foundation\Tomcat 5.5にsample1.xmlを置く ・EclipseでのTOMCAT_HOMEの設定を、  「C:\Program Files\Apache Software Foundation\Tomcat 5.5;C:\eclipse\work_space\TEST001」  と、実行するプロジェクトディレクトリを追記で指定 とした場合、この部分はエラー無く実行されるようなのですが、 できればプロジェクトを基準にした相対パスを記述した外部ファイルを用意して EclipseのProject配下に置いたxmlファイルを操作したいのです。 (開発環境はWindowsですが、将来的に本番稼動ではwarファイルをUnix or Linux に乗せたいので) 現在、WindowsXP/Eclipse3.3/Tomcat5.5/GEF3.3/struts-1.3.8/JDK1.5の環境で、 参考書は「Eclipseパーフェクトマニュアル ベストセレクション」 「xml 逆引きクイックリファレンス」 という本をもとに勉強しています。 恐らく簡単な設定か何かの問題だと思いますので恥ずかしい限りではありますが、 どなたかご存知の方がいらっしゃいましたら、 ご教授頂きたく宜しくお願い致します。

  • Java
  • 回答数2
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
  • kotoby2003
  • ベストアンサー率15% (280/1755)
回答No.2

「EclipseのProject配下に置いたxmlファイルを操作したい」とありますが、本番環境にもEclipseを配置するのでしょうか?そんなわけはありませんよね。根本的にやりたいことが間違っていると思います。 ただ、おそらく、サーバに配置したxmlを操作したい、が正しいのではないでしょうか? とりあえずローカルで動かすだけなら、 String uri = "sample1.xml"; を、 String uri = "C:\\eclipse\\work_space\\TEST001\\sample1.xml"; とするだけで動くはずです。 ※変数がuriとなっていますが、そもそもそこに誤解があるようです。単純にfilePathでしょうね。 ※TOMCAT_HOMEの設定を変えているようですが、それは無意味です。TOMCAT_HOMEはTOMCATをインストールした場所を設定するものです。 String uri = "sample1.xml"; としてパスを指定していないため、TOMCAT_HOME\sample1.xmlにアクセスしてしまいます。

javawater
質問者

補足

ありがとうございます!  絶対パスを利用すれば良いのですね。 大変参考になりました。

その他の回答 (1)

  • OKwebb
  • ベストアンサー率44% (92/208)
回答No.1

やり方はいろいろあるんじゃないかと思いますが、 例えば、サーブレットコンテキストクラスのgetRealPath()メソッドを使えば絶対パスに変換してくれるので、それを使ってparse()しては如何でしょうか。

javawater
質問者

補足

御礼が遅れて申し訳ありません。 getRealPath()メソッドですね。 ありがとうございます。参考にさせて頂きます。

関連するQ&A

  • eclipseからのtomcat起動ができません

    こんばんは。 eclipse3.2からtomcatを起動したいのですが、 猫ボタンを押しても、うんともすんとも言いません。 コンソールにも何も表示されません。 tomcat単体でしたら起動しlocalhost:8080を見れます。 何がいけないのでしょうか? 環境は以下のとおりです。 ・eclipse3.2(日本語) ・tomcat6.0 ・tomcatバージョン バージョン6x ・tomcatホーム C:\Program Files\Apache Software Foundation\Tomcat 6.0 ・サーバーXML設定ファイル C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf\server.xml ・プラグイン tomcatPluginV321.zip お手数ですが、どうかアドバイスをよろしくお願いいたします。

    • ベストアンサー
    • Java
  • Eclipseの設定方法 ~コンパイル先の指定~

    Eclipseにてコンパイルを行った際、 できあがったclassファイルを特定のパスに自動で配置することができるでしょうか? (例えば、C:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\test配下など) 環境は、 Eclipse Ver 2.1.3 OSはWindows XP Pro です。

    • ベストアンサー
    • Java
  • Javaサーブレット開発環境について

    学校でサーブレットの勉強をしているのですが、家でもやろうとしてTomcatをパソコンに入れたのですが、サーブレットだけで次のようなエラーが発生します。 例外 javax.servlet.ServletException: サーブレットインスタンスを割り当て中のエラーです 環境変数は CATALINA_HOME C:\Program Files\Apache Software Foundation\Tomcat 5.0 CLASSPATH .;C:\Program Files\Apache Software Foundation\Tomcat 5.0\common\lib\servlet-api.jar;C:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\s\WEB-INF\classes JAVA_HOME C:\j2sdk1.4.2_10 PATH C:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\s; ちなみにサーブレットのファイルは C:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\s\WEB-INF\classes に入れてあります。 どなたかよろしくお願いします。

  • Eclipseにおけるサーブレット作成時のエラー(TOMCAT)

    JAVA初心者です。非常に困っておりどうしてよいのかわかりません。よろしくお願いいたします! eclipseにてサーブレットを作成したのですが、実行ができません。 ---------- 環境 OS:Windows2000Server Eclipse ver2.1.1 TOMCAT ver4.1 プロジェクト名Sample 実行ファイルHelloSrvlet.java ---------- "web.xml"をエクリプスのプロジェクト下のWEB-INFに作成した場合に『HTTP Status 404』エラーが表示されてしまいます。 servlet.xmlにも<context・・・と設定はしております。web.xmlを作成しなかった場合にはadmin上でSampleがありディレクトリ構成も見えるのですが、作成するとディレクトリ構成も見えなくなります。何が悪いのかすらわからない状況です。 どなたか教えて下さい!

    • ベストアンサー
    • Java
  • eclipseでtomcatを使うには

    eclipseでwebアプリを開発しようと、SAStrutsを勉強しているのですが、チュートリアルが動かなくて困っています。 eclipseのworkspaceにsa-struts-tutorialをインポートしてから、コンテキストの定義を更新したのですが、C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf\Catalina\localhost以下にコンテキストファイルが出力されていません。 これが原因だと思うのですが、なぜ、コンテキストファイルが出力されないのでしょうか? ご回答いただくための情報が不足しているようであればご指摘ください。

  • eclipse + tomcatの連携に関して

    はじめましてwindows上でjavaを動かしている初心者です。 環境設定について悩んでいます。 質問内容 eclipse2.1.3とtomcat5.0.28を連携させて正常に起動していたのですが、手違いでtomcatをアンインストールしてしまいtomcatのみ再インストール(同じ5.0.28)しました。ブラウザ上で動作確認すると 入力 http://localhost:8080/プロジェクト名(test)/ファイル名.拡張子(index.jsp) 結果 HTTPステータス404-/test/index.jsp …となってしまいます。 再インストールの際二箇所変更点があり、以前は C:\Program Files\Apache Software Foundation\Tomcat 5.0 に格納していたtomcatを C:\Tomcat 5.0 に変更し、それに伴いeclipse上の TomcatホームをC:\Tomcat 5.0 Tomcat baseをC:\Tomcat 5.0 設定ファイルをC:\Tomcat 5.0\conf\server.xml に変更。環境変数も 変数名:CATALINA_HOME 変数値:C:\Tomcat 5.0 に変更後、動作確認すると404エラーが返ってしまいます。因みに http://localhost:8080 のみではApacheの画面が正常に表示されます。 tomcat再起動、windows再起動等調べた範囲で試してみましたが、解決できませんでした。 C:\Tomcat 5.0\conf\server.xmlと\conf\web.xml の設定は正常に起動していた時と全く同じ設定にしましたが、他に設定を変える必要があるのでしょうか?またはeclipse再インストールの必要があるのでしょうか?初歩的質問ですがよろしくお願いします。

  • servletのコンパイルエラーについて

    Apache Tomcat 5.5.12にてサンプルプログラムHelloWorld .javaをコンパイルするとエラーが出てしまいます。 HelloWorldServlet.java HelloWorldServlet.java:2: ';' がありません。 import javax.servlet-api.*; ^ CLASSPATHなどの設定も一通りサイトを参照して設定してみました。 CLASSPATH .;C:\Program Files\Java\jdk1.5.0_07\lib\tools.jar;C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib\servlet-api.jar CATALINA_HOME C:\Program Files\Apache Software Foundation\Tomcat 5.5 PATH C:\Program Files\Java\jdk1.5.0_07\bin JAVA_HOME C:\Program Files\Java\jdk1.5.0_07 JAVA初心者なので調べてみましたが解決にはいたりませんでした。 よろしかったらご教授のほどよろしくお願い致します。

    • ベストアンサー
    • Java
  • Struts2で日本語を定義したメッセージファイルを作成したいです。

    Struts2で日本語を定義したメッセージファイルを作成したいです。 以下の環境でWebアプリケーションを作成しようとしています。 eclipse 3.4 J2SDK 1.6 Tomcat 6.0 Struts 2.0.14 struts.xmlには <constant name="struts.custom.i18n.resources" value="MessageResources" /> <constant name="struts.i18n.encoding" value="Windows-31J" /> と記述しています。 JSPのヘッダ部は <%@ page contentType="text/html; charset=Windows-31J" %> <%@ page pageEncoding="Windows-31J" %> <s:property value="attention"/> と記述しています。(一部抜粋) メッセージファイル(MessageResources.properties)は message.attention=テスト と記述しいています。 "native2ascii"コマンドを使ってメッセージファイルをUnicodeでエンコードしてみました。 eclipse上でエンコードしたメッセージファイルを開くと 「\u30c6\u30b9\u30c8」と表示されてしまいますが JSPには正しく「テスト」と表示されました。 eclipse上でエンコードしたメッセージファイルの編集を行うことは可能でしょうか?

    • ベストアンサー
    • Java
  • apache + tomcatの環境

    お世話になっております。 tomcat4xとapacheをjk2で連携させているウェブサーバ環境で、ウェブアプリケーションをtomcatのwebappsフォルダ以外に配置したいときには、server.xmlのContext要素に設定を加えるということでよいと思うのですが、 例:<Context path="/sample" docBase="c:\sample"/>をserver.xmlに追記する このときにjk2の設定ファイルworkers2.propertiesには何を追記すればよいのでしょうか。あるいは何も追記しなくてよいのでしょうか。上記の例の場合でしたら、workers2.propertiesに [uri:/c:\sample/*] と追記するのでしょうか。それとも何も追記してはいけないのでしょうか。 どうぞよろしくご教授ください。

    • ベストアンサー
    • Java
  • TomcatのJSP Examplesのページを開けません

    これからJSP・サーブレットを勉強しようと思っている初心者です。 Tomcatを起動しhttp://locaohost:8080でページは表示されるのですが、JSP ExamplesとServlet Examplesを開こうとすると、 The requested resource (/jsp-examples/) is not available. というメッセージがでて開く事が出来ません。 WindowsXP J2SE 環境変数は path C:\Program Files\Java\jdk1.5.0\bin;C:\Program Files\MySQL Server4.1\bin CATALINA_HOME C:\Program Files\Apache Software Foundation\Tomcat5.5 JAVA_HOME C:\Program Files\Java\jdk1.5.0 CLASSPATH C:\Program Files\Apache Software Foundation\Tomcat5.5\common\lib\servlet_api.jar; C:\Program Files\Apache Software Foundation\Tomcat5.5\common\lib\jsp_api.jar; C:\Program Files\Apache Software Foundation\Tomcat5.5\webapps\jsp 10\WEB-INF\classes に設定してあります。 初歩的な質問で申し訳ありませんが、よろしくお願いします。