- PR -

jspにてサーバ上のxmlファイルへ書き込みする方法

1
投稿者投稿内容
delix
会議室デビュー日: 2005/10/13
投稿数: 14
投稿日時: 2005-10-13 00:20
こんにちは
初めて投稿させていただきます。
今jspでxmlファイルを用いた掲示板を作ってるんですが
サーバ上のxmlファイルからデータの読み出しはできてるんですが、
データの書き出しができません。
色々と探しましたがいまいち方法がわかりません。
ASPでは普通にサーバ上のxmlファイルで読み書きできました。
JSPでは書き込みはできないのでしょうか。
どなたか教えて下さい。
未記入
会議室デビュー日: 2005/10/12
投稿数: 5
投稿日時: 2005-10-13 01:03
引用:

delixさんの書き込み (2005-10-13 00:20) より:
JSPでは書き込みはできないのでしょうか。
どなたか教えて下さい。


このままだと 出来ます。 という返信が帰ってきてしまいます。

データの書き出しが出来ない理由と、(例外が発生するのならばスタックトレース)
JSPではなくJava単体ならばXMLの書き出しを行う方法が分かるのかを
書き込んでみて下さい。
delix
会議室デビュー日: 2005/10/13
投稿数: 14
投稿日時: 2005-10-13 01:16
ご返答ありがとうございます。
現在問題の掲示板を置いています。↓
http://delix.dvrdns.org/delix/jsp/bbs/keijiban.jsp
書き込みのソースはこれです。↓
try{
TransformerFactory transFactory;
Transformer transformer;
DOMSource source;
transFactory = TransformerFactory.newInstance();
transformer = transFactory.newTransformer();
source = new DOMSource(doc);

File fxml=new File(url.openStream());
FileOutputStream os = new FileOutputStream(fxml);
StreamResult result = new StreamResult(os);
transformer.transform(source, result);
os.close();
}catch(Exception e){

}
urlはxmlの場所です。
jspでのトレースの仕方がわからないのですが方法あるのですか。
java単体では読み書きできます
ご返答お待ちしてます
未記入
会議室デビュー日: 2005/10/12
投稿数: 5
投稿日時: 2005-10-13 13:23
引用:

delixさんの書き込み (2005-10-13 01:16) より:
書き込みのソースはこれです。↓
try{
TransformerFactory transFactory;
Transformer transformer;
DOMSource source;
transFactory = TransformerFactory.newInstance();
transformer = transFactory.newTransformer();
source = new DOMSource(doc);

File fxml=new File(url.openStream());
FileOutputStream os = new FileOutputStream(fxml);
StreamResult result = new StreamResult(os);
transformer.transform(source, result);
os.close();
}catch(Exception e){

}


}catch(Exception e){
 e.printStackTrace();
}
で吐き出される例外内容のログを見てみましょう。
jspから生成されたjavaファイルにブレークポイントを張ることでデバッガの使用も可能です。
delix
会議室デビュー日: 2005/10/13
投稿数: 14
投稿日時: 2005-10-13 18:24
ご返答ありがとうございます。
なんとかエラーを消すことはできましたが
ファイルに書き込めてないようです。
File f=new File("http://〜〜〜/keijiban.xml");
のように直接ファイルのある場所のURLを指定してもダメみたいでした。
URLクラスにopenStream()というメソッドがあるんですが
これは読み込み専用みたいで書き込みはダメでした。
ほかに方法があるのでしょうか。
ご返答お待ちしてます
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2005-10-13 18:46
ローカルファイルシステムのパスを指定しましょう。
delix
会議室デビュー日: 2005/10/13
投稿数: 14
投稿日時: 2005-10-13 19:00
ご返答ありがとうございます。
application.getRealPath()でやってみると書き込むことができました。
ありがとうございました!
でもxmlだからなのか書き込みが反映されるまで結構時間がかかるみたいですね。
xml、javaについてもっと勉強していこうとおもいます。
どうもありがとうございました。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2005-10-13 21:20
恐らく
transformer.transform(source, result);
で時間が掛かっているのではないでしょうか。
XLST の処理は比較的時間がかかるものです。
1

スキルアップ/キャリアアップ(JOB@IT)