Ubuntu9.04でBleazeDSを試す。

Ubuntu9.04+Tomcat6+Apache2にBlazeDSでちゃんと動かないときの話。

apt-getでTomcat6をインストールして、Apacheとも連携がうまくいった。
ubuntuのTomcat6はライブラリーやらログディレクトリやらが散乱しててわかりにくいですな…。
以下がlocateしてtomcat6関係ありそうなディレクトリの一覧。

  • /etc/tomcat6        <–Tomcat本体
  • /etc/default/tomcat6  <-Tomcat起動スクリプトに読まれるファイル
  • /etc/init.d/tomcat6   <-起動スクリプト
  • /usr/share/tomcat6   <-共有ライブラリー等
  • /var/lib/tomcat6     <–設定ファイルやらログファイルやらのエイリアスあります。
  • /var/lib/tomcat6/webapps/<–ここにデプロイ
  • /var/log/tomcat6        <–ログファイル

webappsにblazeDS.warを入れてみても動かない。
ログを見てみるとなにやら不可思議なメッセージ。

SEVERE: サーブレット /blazeds がload()例外を投げました
javax.servlet.UnavailableException
        at flex.messaging.MessageBrokerServlet.init(MessageBrokerServlet.java:170)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:244)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAsPrivileged(Subject.java:537)
        at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:276)
        at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:162)
        at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:115)
        at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1155)
        at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)
        at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4045)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4351)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
        at org.apache.catalina.core.ContainerBase.access$000(ContainerBase.java:123)
        at org.apache.catalina.core.ContainerBase$PrivilegedAddChild.run(ContainerBase.java:145)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:769)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:825)
        at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:714)
        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:490)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
        at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
        at org.apache.catalina.core.StandardService.start(StandardService.java:516)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:566)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at org.apache.commons.daemon.support.DaemonLoader.start(DaemonLoader.java:177)
at java.security.AccessController.ってなんだよ

BlazeDSのTomcat入りをダウンロードしてきて起動するとちゃんと動くし…。
ライブラリが足りないわけでもなさそう。
なぜなんだろう?とりあえず開発には支障がないからTomcat入りのBlazeDSを起動スクリプトに追加しておこうかね。と思い/etc/ini.d/tomcat6をコピーしてやり過ごそうとおもっていると、起動スクリプト を見ていると

TOMCAT6_SECURITY=Yes

tomcat6_securityってなんだよ。とりあえずnoにしとけばいんじゃない?
でも直接変更かけるのはよくないので
/etc/default/tomcat6を開いて

TOMCAT6_SECURITY=Yes

に修正。
詳細は後で調べるとして…。
で、めでたくUbuntu+tomcat6(Ubuntuパッケージ) +BlazeDSが動きましたとさ。

どうやらtomcat6_securityってのはubuntuのセキュリティーポリシー何チャラを有効にしてるらしい。
yesにするとWebappsにデプロイしてもはじかれるとか。
ちゃんと設定しなきゃいかんと思うがとりあえずこれで進めてみよう。
はははは。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です