2009年1月17日土曜日

jetty6@fedora rpm

jettyのrpmインストールを行う。
fedora10付属のjettyはバージョンが古いので折角だから現行最新版を導入してみる。
ソースからRPMパッケージを作成するのは挑戦してみてのですが、リポジトリを追加したりかなり面倒
だったので挫折。jettyのサイトからRPMがあったのでこちらに乗り換え。
  • RPM一式をインストール
インストールされた一式は/usr/share/jetty6から確認できる(中身はシンボリックリンク)。
ただし、jetty6-plus-6.1.14-1jpp.noarch.rpm に含まれるjetty6-plus-6.1.14.jarの中身が空っぽなので
(MANIFEST.MFくらいしか入ってない!)ので仕方なくソースをダウンロードして別途jarを作成して入れ替え。

あー、面倒くさい。

continuum導入@fedora10

continuumはservletコンテナを同梱されて配布されているが、既にjetty6.1.14を導入しているのでwar形式で導入してみる。

continuumからメール送信を利用するので/etc/jetty/start.configに以下を追記
/usr/share/java/javamail.jar always
/usr/share/java/activation.jar always
/etc/default/jetty6を作成(起動スクリプト /etc/init.d/jetty6から利用される)
JAVA_HOME=/usr/java/latest
JAVA_OPTIONS=-Dappserver.base=/usr/share/jetty6
#JETTY_USER=jetty
# JETTY_ARGSは起動時に /usr/share/jetty6/の後にくっついてしまうため使えないみたい
# java.io.FileNotFoundException: /usr/share/jetty6/-Dappserver.base (No such file or directory)
#JETTY_ARGS=-Dappserver.base

appserver.baseはcontinuumのlog4j.xmlから参照される。この定義がないとTOPディレクトリに/logs
が作成されてしまうので(root起動すると)この設定で/var/log/jetty6/continuum.logに出力されるようになる。

サーバー起動時に
Failed startup of context org.mortbay.jetty.webapp.WebAppContext@1fe4d40{/,null}

がログ(/var/log/jetty/yyyy_MM_dd.stderrout.log)に出力される。(とりあえずcontinuumは使えるので放置・・・)

これで環境が揃った。

continuum導入@fedora10

continuumはservletコンテナを同梱されて配布されているが、既にjetty6.1.14を導入しているのでwar形式で導入してみる。

continuumからメール送信を利用するので/etc/jetty/start.configに以下を追記
/usr/share/java/javamail.jar always
/usr/share/java/activation.jar always
/etc/default/jetty6を作成(起動スクリプト /etc/init.d/jetty6から利用される)
JAVA_HOME=/usr/java/latest
JAVA_OPTIONS=-Dappserver.base=/usr/share/jetty6
#JETTY_USER=jetty
# JETTY_ARGSは起動時に /usr/share/jetty6/の後にくっついてしまうため使えないみたい
# java.io.FileNotFoundException: /usr/share/jetty6/-Dappserver.base (No such file or directory)
#JETTY_ARGS=-Dappserver.base

appserver.baseはcontinuumのlog4j.xmlから参照される。この定義がないとTOPディレクトリに/logs
が作成されてしまうので(root起動すると)この設定で/var/log/jetty6/continuum.logに出力されるようになる。

サーバー起動時に
Failed startup of context org.mortbay.jetty.webapp.WebAppContext@1fe4d40{/,null}

がログ(/var/log/jetty/yyyy_MM_dd.stderrout.log)に出力される。(とりあえずcontinuumは使えるので放置・・・)

これで環境が揃った。

2009年1月5日月曜日

WebDAVのlinux client

自宅サーバーのWebDAVに会社のWindows XPからはアクセスが問題なくできるのに
Linux(fedora10)からアクセスできなくなった…

なんでダメだったか今日分かった。
httpd のアクセスログで
"OPTIONS /DAVDIR HTTP/1.1" 301 294 "-" "gvfs/1.0.3"
となっており、301が正しく解釈出来ない様子。
なんだと調べてみるとこちらのブログを見て気がついた。

httpd.confの

#
# The following directive disables redirects on non-GET requests for
# a directory that does not include the trailing slash. This fixes a
# problem with Microsoft WebFolders which does not appropriately handle
# redirects for folders with DAV methods.
# Same deal with Apple's DAV filesystem and Gnome VFS support for DAV.
#
BrowserMatch "^gvfs/1.0.[0-9]{1}" redirect-carefully

こちらの部分に該当するgvfsを追記して(バージョン部分の正規表現はある程度緩めにしてみた)
再起動したらlinux(fedora10 gvfs-1.0.3-4.fc10.i386)からもアクセス出来ました。

ホントは設定上、https限定(SSLRequireSSL)にしたかったのだけど未対応みたい(オレオレ証明書だから?)
もともとIPtableで80ポートはオープンしていないのでま、いいかと妥協。