PHP ヘッダー書き換え
2007/12/22
jnlp
php
はじめに
PHPを利用して、Java Web Startで起動させるアプリケーションをつくってます。
具体的には、JNLP(PHPで生成している)がコールされた時に、参照できるライブリーを付加したりできるようにしたいのです。
PHPで単純にJNLPの中身を出力するだけではだめだったので、それについてのメモです。
Content-Typeを書き換えたい
mime-typeって指定しないとデフォルトで「text/html」のようですね(もちろんwebサーバーとかの設定なのでしょうが...)
mime-typeの指定がないと、Java Web Startが起動しませんでした。
PHPで例えばPDFや、JNLP、イメージなどを生成する場合、そのmime-typeを指定します。
参考
Deploying Java Web Start Applications (The Java™ Tutorials > Deployment > Java Web Start)
Java Web Start にさわる
ヘッダ書き換えの実用的サンプル - ギャラクシードリンク 宇宙味
PHP: header - Manual
ファイルの先頭に,header関数で、Content-Typeを指定します。
JNLPの場合
<?php
header("Content-Type: application/x-java-jnlp-file");
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
?>
header("Content-Type: application/x-java-jnlp-file");
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
?>
Content-Tpyeのチェック
Content-Tpyeのチェックを行うにwgetコマンドが使える環境ならwgetで確認できます。
wget http://deiji.jp/tools/websupport/groovyconsole/g.jnlp--13:22:13-- http://deiji.jp/tools/websupport/groovyconsole/g.jnlp
=> `g.jnlp'
Resolving deiji.jp... 219.94.129.200
Connecting to deiji.jp|219.94.129.200|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 729 [application/x-java-jnlp-file]
=> `g.jnlp'
Resolving deiji.jp... 219.94.129.200
Connecting to deiji.jp|219.94.129.200|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 729 [application/x-java-jnlp-file]
ブラウザにFireFoxを使用しているのであれば、FireFoxの機能拡張が便利なようです。
mozdev.org - livehttpheaders: index
キャプチャした画面
参考
ウノウラボ Unoh Labs: すべてのWebデベロッパーに必須なFirefox拡張20(+1)選
さいごに
Java Web Startを使用したアプリケーションの提供がもっと一般的になったらいいなと思ってます。
アイデアとして起動時にとりこむライブラリをユーザーに選択させて、動作させるのはそんなに悪くないと考えているのですが、どうでしょう。
: