呑んだくれ改めレッツゴー痛風日記
2003-06-09
_ 本社で
ダメだしタイム。
_ さらにJava Web Start
起動アプリへの引数の渡し方。jnlpファイルのapplication要素に1つ以上の<argument>要素を指定できるそうだ。
<application-desc main-class="Hoge"> <argument>hoge</argument> </application-desc>
ためしに動かしてみた。・・・。おお〜、ちゃんと引数が渡されてる!!すげー。では、次は動的に引数を変えてみよう。サーブレットで作ってみます。getParameterで取得した文字列をargument要素にを突っ込むサーブレットを作ってみました。HttpServletResponseに指定するContentTypeはapplication/x-java-jnlp-fileにします。
response.setContentType("application/x-java-jnlp-file");
一応、servlet-mappingでhoge.jnlpという名前でアクセスできるように設定した。ドキドキしながら動かしてみる。ブラウザからhoge.jnlp?param=hogeとかたたいて。・・・。う〜ん、起動はするのが、引数が渡されていないなぁ。なんでだろう?80番でtelnetして見てみるも、出力しているjnlpは問題なさそう。Tomcatのログをtailしてみると、Java Web Startが起動するときに何回かサーブレット見に行ってる。
うーむ。そこで次に注目したのは、jnlpタグのhref属性。ここで指定しているjnlpファイルを起動時に見に行くのかしら?試しに、その部分もサーブレットで動的にパラメータを追加してみた。
href="hoge.jnlp?param=hoge"
うーむ、どうやら今度はJava Web Startが起動しなくなったぞ。起動時にJNLPExceptionが発生しちった。
例外
JNLPException[category: ダウンロードエラー : Exception: java.io.IOException: Unable to create temp. file for: http://172.25.36.66/nikunoki/hoge.jnlp?param=hoge : LaunchDesc: null ] at com.sun.javaws.cache.DownloadProtocol$RetrieveAction.actionDownload(Unknown Source) at com.sun.javaws.cache.DownloadProtocol.doDownload(Unknown Source) at com.sun.javaws.cache.DownloadProtocol.getLaunchFile(Unknown Source) at com.sun.javaws.LaunchDownload.getUpdatedLaunchDesc(Unknown Source) at com.sun.javaws.Launcher.downloadResources(Unknown Source) at com.sun.javaws.Launcher.handleApplicationDesc(Unknown Source) at com.sun.javaws.Launcher.handleLaunchFile(Unknown Source) at com.sun.javaws.Launcher.run(Unknown Source) at java.lang.Thread.run(Thread.java:536)
ラップした例外
ava.io.IOException: Unable to create temp. file for: http://172.25.36.66/nikunoki/hoge.jnlp?param=hoge at com.sun.javaws.cache.DiskCache.getTempCacheFile(Unknown Source) at com.sun.javaws.cache.DownloadProtocol$RetrieveAction.actionDownload(Unknown Source) at com.sun.javaws.cache.DownloadProtocol.doDownload(Unknown Source) at com.sun.javaws.cache.DownloadProtocol.getLaunchFile(Unknown Source) at com.sun.javaws.LaunchDownload.getUpdatedLaunchDesc(Unknown Source) at com.sun.javaws.Launcher.downloadResources(Unknown Source) at com.sun.javaws.Launcher.handleApplicationDesc(Unknown Source) at com.sun.javaws.Launcher.handleLaunchFile(Unknown Source) at com.sun.javaws.Launcher.run(Unknown Source) at java.lang.Thread.run(Thread.java:536)
Windowsで?を含むファイル名が許されていないことが問題のようですな。
試しにRedHatのネスケ4.78から起動したらちゃんと引数渡せて動作しましたね。
カテゴリ一覧
.NET |
DIY |
Huber |
LifeHack |
Linux |
MacOSX |
UML |
Web |
cygwin |
emacs |
etc |
java |
mixi |
movie |
music |
tDiary |
tec |
work |
アイヌ |
アート |
エコ |
カレー |
ゴルフ |
スキー |
ダイエット |
ドリ大 |
バイク |
ブッシュクラフト |
マルシェ |
ラーメン |
レシピ |
別海 |
名言 |
吸わず |
呑まず |
呑み |
和文化 |
地域活性化 |
大麻 |
懺悔 |
旅 |
日記 |
泳 |
温泉 |
犬 |
縄文 |
自転車 |
蕎麦 |
観光 |
読書 |
走 |
農 |
酒 |
野球 |
食