Django on Jython (3)

Django on Jythonの3回目ということで、Tomcat上でDjangoを動かしてみます。とは言っても、前回作成したプロジェクトをwarにアーカイブして、Tomcatに乗せるだけなんですけど。

warの作成

django-jython をインストールすると、manage.pyでwarコマンドが使用できるようになります。ですが、その前にsetting.pyを修正してINSTALLED_APPSにdojを追加します。

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.admin',
    'doj',
)

準備は完了したので、warコマンドを使ってwarを作成します。ここでオプション--include-java-libsに対して、追加で組み込むjarを指定します。最低でもjdbc.jarは必要になると思いますが、その他にも必要なjarがあればファイルセパレータ(Windowsなら;、Linuxなら:)を使って追加してください。

jython manage.py war --include-java-libs=%JYTHON_HOME%\javalib\postgresql-8.3-603.jdbc4.jar

これでwarが作成されました。尚、warはプロジェクトのディレクトリではなく、その上のディレクトリに作成されています。

Windowsでwarが作成できない時

revision32の時点では、Windows上でmanage.py war を実行すると、ディレクトリ作成に失敗した、というようなメッセージが出てwarが作成できません。Windowsで試す場合は、war.py の228行目を次のように修正すればOKです。

#    if dest_relative_path[-1] == '/':
    if dest_relative_path[-1] == os.path.sep:
        dest_relative_path = dest_relative_path[:-1] 

Tomcatへのdeoloy

Tomcatへの配備は、解凍したTomcatのwebappsディレクトリにwarファイルをコピーするだけです。manage.warの出力先をwebappsに修正してしまえば、コマンド実行だけで配備できるでしょう。

それでは、Tomcatを起動してみます。

http://localhost:8080/j_site/admin/ でアクセスしてみると動作している事が確認できます。

いや、とても簡単ですね。とりあえずは今回でラストですが、ネタが入れば続くと思います。