- ベストアンサー
ファイルの受け渡し方法教えてください。
JAVAでこんな処理をしたいのですが、プログラムの書き方を教えて頂けませんでしょうか? (1)サーバーにあるXMLファイルを受け取る。 (2)受け取ったXMLファイルを上書き保存する。 (3)そのXMLファイルを送り返す。 ポイントはXMLファイルなんですが、やり方が見当つきません。ご教授願います。 もし、これがテキストファイルだったら簡単にできるのでしょうか?両方、やり方がわかれば教えてください。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 もう少しFlexについて調べてみました。Flexってすごいですね!!値段が高いので個人では使えないですが。:( 仕様はFlexでサーバにあるXMLファイルを編集したいということでよろしいでしょうか? 私の頭の中で考えた方法ですが、以下のようにすればできると思います。実際に動かしてないので間違ってるかもしれませんが…。 サーバ側のJavaプログラムは、XMLを受け取って保存するメソッドを作成します。引数はString型がいいと思います(この引数にXMLが入れられます)。String型の変数をハードディスクに保存するには以下の様にFileWriterクラスを使えばできます(ただし、排他制御は考えに入れてないです)。 Writer writer = new FileWriter("ファイル名"); writer.write(xml); あとはmxmlファイルにテキストを表示・更新するエリアと、上記クラスのメソッドを呼び出すボタンを作成すればいけるはずです。場合によっては、最初に表示するXMLを取得するメソッドを、サーバ側に実装しなければいけないかもしれません。
その他の回答 (5)
- hogefuga
- ベストアンサー率75% (6/8)
少しFlexのことを調べてみました。 まず、FlaxのUI(ユーザインタフェース)の部分はFlashで実装されていますよね?ということはブラウザ(クライアント)側で起動しています。この、クライアント上で起動しているUIにFlexサーバにあるXMLファイルを表示させ、クライアントのHDDにファイルを保存したいということでしょうか?それともクライアント側でFlexのMXMLを編集したいのでしょうか?もしくはサーバ側で動的にMXMLを作成したいということでしょうか? 他の方が書かれているようにXMLフォーマットを動的に扱うためにはXMLパーサを使用しますが、これはXMLフォーマットのデータを動的に作成や編集するために使用します。もし、ただXMLファイルを保存したい場合は別の方法となります。 それからWEB+DBの最新号に記事があったような気がします。参考URLを見てみてください。
お礼
アドバイスありがとうございます。Flexの開発日記をつけてみようと思っています。こちらにソースなどを掲載する予定です。宜しくお願い致します。 http://blog.goo.ne.jp/piano_s/
補足
hogefuga様 Flexのことをわざわざ調べて頂いたなんて感激です。ありがとうございます。周りにFlexを使える人がいなくて、聞ける相手もいないので本当に困り果てています。 ■仕様確認 (1)クライアント上で起動しているUIにFlexサーバにあるXMLファイルを表示させる。 (2)クライアント上からXMLファイルを書き換える。 (この時点で書き換えているように見えるのはメモリ上でのことなので実際は、保存はできていない。) (3)書き換えたデーターをJAVAサイドに渡してJAVAサイドで保存をする。 (4)保存が完了したら、保存ができたことをクライアント側に送り「更新完了」のポップアップを表示させる。 WEB+DBの最新号、持っています。Flexについてちょっと出ていましたが、シーサーを使って作っているみたいですよね。シーサーの使い方がイマイチわからないのです・・・。 お手数お掛けしますが、宜しくお願い致します。 ■FlexのAPIリファレンスです。 http://www.macromedia.com/support/documentation/jp/flex/1_5/asdocs_jp/asdoc-title.html
- neuron-x
- ベストアンサー率52% (139/266)
JDomのサンプルなどは、次のサイトなどが分かりやすいのではないでしょうか。 http://www.ncfreak.com/magazine/No.003/xom.html # Flexを使っているのですね。 # これからFlexは伸びてくると思うので、 # 私も使ってみたい所です…。
お礼
neuron-x様 ありがとうございます。参考にしてみます。 はい。Flexを使っています。ただ、書籍などが出ていないことと、使える人が周りにいないので、本当に苦戦中です。何か情報などございましたら、教えてやって下さいませ。宜しくお願い致します。
補足
仕様で、「Flex上で、データベースにあるXMLファイルを読み込んで画面に表示させます。」と書きましたが、データベースではなくて、サーバーの間違いです。 すみません。。。
- neuron-x
- ベストアンサー率52% (139/266)
XMLの読み書きをJavaで行いたいということでしょうか? XMLをJavaで解析する場合、XMLパーサと呼ばれる物を使います。パーサには様々な種類がありますが、Javaに最適化されているJDom(URL参考)などがおすすめです。 XML操作のAPIとしては、SAX、DOMなどがあります。 用途に分けて、SAX、DOMなどを使い分けるのですが、XML操作が初めてならSAXの方が簡単かもしれません。
- 参考URL:
- http://www.jdom.org/
補足
neuron-x様 回答ありがとうございます。 XMLパーサーですか。調べてみます。 もし可能でしたらサンプルソースなどございませんか?初心者なので、混乱しています。 宜しくお願い致します。
- hogefuga
- ベストアンサー率75% (6/8)
追加です。 補足説明では、以下のようなことを説明していただくと答えやすいです。 1.サーバーとは何のサーバーか。ApacheのようなWebサーバなのかTomcatのようなアプリケーションサーバなのか、はたまた独自のサーバなのか。また、そのサーバ上ではどのようなソフトが動作しているのか。独自のソフトを動作させることは可能なのか。 2.受け取ったXMLファイルを上書き保存するとは、どのに保存するのか(ハードディスク?データベース?)。誰が受け取るのか。 3.XMLファイルを送り返すとは、サーバから受け取ったXMLファイルのこと?(サーバから送られてきたファイルと同じファイルを同じ相手に送り返すのですか?) 以上、宜しくお願いします。
補足
hogefuga様 お返事ありがとうございます。 説明不足ですみません。 マクロメディアのFlexというものを使って、管理画面を作成したいのですが、サーバーサイドに接続することで悩んでいます。 Flex アプリケーションは直接データベースにアクセスする機能を持っていません。サーバーサイドコンポーネントを実装し、これと連携を取る必要があるそうなので、JAVAサイドの部分を作りたいのですが、 それで行き詰っております。 ■仕様 (1)Flex上で、データベースにあるXMLファイルを読み込んで画面に表示させます。 (2)画面に表示させたファイルの内容を、ユーザーが書き換えます。ここで書き換えられているデーターはメモリ上に書き換えているので、実際は保存できていません。 (3)その書き換えたファイルの内容をJAVAなどに引き渡してJAVA側でXMLファイルを保存する。 (4)保存が成功した場合、Flex側で「更新完了しました」とポップアップを表示させる。 (2)までできているのですが、(3)と(4)のやり方がイマイチわかりません。ポイントはXMLファイル更新なのですが・・。 Flexの詳細URL http://www.atmarkit.co.jp/fwcr/rensai/flex01/flex01_1.html 1.サーバーとは何のサーバーか。ApacheのようなWebサーバなのかTomcatのようなアプリケーションサーバなのか、はたまた独自のサーバなのか。また、そのサーバ上ではどのようなソフトが動作しているのか。独自のソフトを動作させることは可能なのか。 この点については、明日確認して補足します。 2.受け取ったXMLファイルを上書き保存するとは、どのに保存するのか(ハードディスク?データベース?)。誰が受け取るのか。 受け取ったXMLファイルを上書き保存するのはデータベース上にあるXMLファイルです。 3.XMLファイルを送り返すとは、サーバから受け取ったXMLファイルのこと?(サーバから送られてきたファイルと同じファイルを同じ相手に送り返すのですか?) はい、そうです。でも、Flexに送り返す必要はないので、この部分はカットしてしまっても問題ないです。 ただ更新が正常にできたことをFlex側に送りたいのです。 宜しくお願い致します。
- hogefuga
- ベストアンサー率75% (6/8)
はじめまして。 これだけでは情報が少なすぎて確実な回答はできませんので、できればもう少し情報がほしいです。 それからXMLファイルというのはテキストで書かれていますので、テキストファイルでできることはXMLファイルにも当てはめることができるはずですよ。
補足
アドバイスありがとうございます。Flexは150万くらいしますよねぇ。高いです。 でも、お試し用で50日間ライセンスが貰えるのがあるので、是非ダウンロードして 使ってみたください。 私が作っている部分はブログにUPしました。サーバーサイド部分はできていないので、 MXMLの部分と、読み込んでくるXMLファイルの部分だけですが・・・。 http://blog.goo.ne.jp/piano_s/ それと、サーバーサイドなのですが、こういうのは使えませんかね?↓URL参照。 http://www.stackasterisk.jp/tech/java/upload01_01.jsp