- - PR -
Java Web Start起動アプリケーションにセッションごとのパラメータを渡すには
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2005-01-26 13:35
下記の件、私の現段階の能力・情報収集力では分かりませんでした。
お詳しい方いましたら、お教えください。 Apache/Tomcatを使ってWebアプリケーションサイトを作っています。 J2SE: 1.4.2_05 Tomcat: 5.0 クライアント上でJavaアプリケーションをWebのJava Web Startを介して 起動させる場合、渡すパラメータは簡単にはJNLP ファイルの<application-desc> の子要素<argument>で指定できるようですが、パラメータがセッションなどによって 変わる場合はどうすればいいのでしょうか? JNLPファイルをセッションなどの別に動的に生成して、<argument>の部分を変える しかないのでしょうか? そもそもこれは可能なのでしょうか? |
|
投稿日時: 2005-01-26 16:20
セッションとは HttpSessionのことでしょうか?
まず、JNLP を動的に生成することは可能です。 Sun が提供している JNLPServlet なんかがそうですね。 http://www.google.com/search?hl=en&lr=&c2coff=1&q=jnlpservlet+site%3Ajava.sun.com&btnG=Search もちろんそれの応用で HttpSession のセッション ID を JNLP に織り込む事は可能です。 しかし Java Web Start のアプリケーションは必ずしもブラウザから起動されるわけではないのでオフラインやセッションタイムアウト後に起動された場合どうするのか考える必要がありますね。 どういう要件かちょっと見えてこないのですが、まず HttpSession と JWS アプリケーションを切り離せないか考えてみてはいかがでしょうか。 |
|
投稿日時: 2005-02-03 18:44
質問者です。遅ればせながら、その後の報告です。
インギさん、情報・コメントありがとうございました。 助かりました。 まず、Java Web Start (以下 JWS) させるプログラム なんですが、元々独立アプリケーションとして作って いたもので、これをなかば無理矢理Webアプリケーション のユーザセッションと連携させて動作させようとして 質問をした次第です。 確かに元から設計を考え直した方がいいのかもしれ ませんが... オフラインでは利用しないので、アプレットでも いいのですが、アプレット用に書き直すのも 少し手間ですし、やはりWebアプリケーションの セッションとの連携の問題もありそうです。 まず自分でやってみたのは (A) JWSで起動するアプリケーションでそのWeb アプリケーションにアクセスし、パラメータを 得る という試みです。 しかし、JWSで起動したアプリケーションからは セッションやクッキーの情報は得られないようで 断念しました。 次にインギさんの指摘にあった (B) Sun の JnlpServlet のように、JNLPファイルを出力する サーブレットを作りセッション情報に対応させる を試し、何とか希望の動作をさせることができました。 ただ、JNLPファイルの内容がキャッシュに残るためなのか 動作が今一不安定なのですが、とりあえずはよしとします。 以上、遅ればせながら報告します。 |
1
