プログラマメモ2 - programmer no memo2

PHP ヘッダー書き換え 2007/12/22

はじめに


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\"?>";
?>



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]


ブラウザにFireFoxを使用しているのであれば、FireFoxの機能拡張が便利なようです。

mozdev.org - livehttpheaders: index

キャプチャした画面


参考

ウノウラボ Unoh Labs: すべてのWebデベロッパーに必須なFirefox拡張20(+1)選


さいごに


Java Web Startを使用したアプリケーションの提供がもっと一般的になったらいいなと思ってます。
アイデアとして起動時にとりこむライブラリをユーザーに選択させて、動作させるのはそんなに悪くないと考えているのですが、どうでしょう。

: