- PR -

tomcatのwarファイルの自動展開について

1
投稿者投稿内容
HARU
会議室デビュー日: 2003/08/20
投稿数: 7
投稿日時: 2003-08-20 17:30
はじめまして
javaを始めて間もない者です。
現在JBuilder5を使用して開発し
以下の環境にてServletなどを動作させようとしています。
[動作環境]
・RedHat Linux 9
・Apache1.3
・tomcat4.1.18

しかし、${TOMCAT_HOME}/webapps配下にJBuilderで作成したwarファイルを
配置してtomcatを起動しても、warファイルが自動で展開できないでいます。
ただ、Servletなどの動作自体は、jarコマンドを使いwarファイルを展開すれば問題ないです。
色々と調べたのですが、八方塞がりになってしまいましたので
何が悪いのか、ご存知の方がいましたら教えて下さい。
自動展開失敗時のserver.xmlと、tomcatのログを載せますので参考にして下さい。

[server.xml]
<!-- Example Server Configuration File -->
<!-- Note that component elements are nested corresponding to their
parent-child relationships with each other -->

==== 省略 ====

<!-- Define the default virtual host -->
<Host name="localhost" debug="0" appBase="webapps"
unpackWARs="true" autoDeploy="true">

==== 省略 ====

<Context path="/hoge" docBase="hoge" debug="9"
reloadable="true"
crossContext="true"
trusted="false">
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="localhost_hoge_log."
suffix=".txt"
timestamp="true"/>
</Context>
</Host>

==== 以下省略 ====

[localhost_hoge_log.txt]
2003-08-20 17:25:03 StandardContext[/hoge]: Starting
2003-08-20 17:25:03 StandardContext[/hoge]: Processing start(), current available=false
2003-08-20 17:25:03 StandardContext[/hoge]: Configuring default Resources
2003-08-20 17:25:03 StandardContext[/hoge]: Resources start failed:
2003-08-20 17:25:03 StandardContext[/hoge]: Configuring non-privileged default Loader
2003-08-20 17:25:03 StandardContext[/hoge]: Configuring default Manager
2003-08-20 17:25:03 StandardContext[/hoge]: Processing standard container startup
2003-08-20 17:25:03 StandardContext[/hoge]: 以前のエラーのために、コンテキストの起動が失敗しました
2003-08-20 17:25:03 StandardContext[/hoge]: 起動が失敗した後のクリーンナップ中に例外が発生しました
LifecycleException: コンテナ StandardContext[/hoge] はまだ起動されていません
at org.apache.catalina.core.StandardContext.stop(StandardContext.java:3643)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3621)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:738)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:347)
at org.apache.catalina.core.StandardService.start(StandardService.java:497)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:2189)
at org.apache.catalina.startup.Catalina.start(Catalina.java:512)
at org.apache.catalina.startup.Catalina.execute(Catalina.java:400)
at org.apache.catalina.startup.Catalina.process(Catalina.java:180)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203)

少ない情報ですが、宜しくお願いします。
よこい
会議室デビュー日: 2003/08/22
投稿数: 7
投稿日時: 2003-08-22 22:45
はじめまして。よこいと申します。

server.xml の Context タグ、docBase アトリビュートの
記述に誤りがありますね。
docBase には war ファイル名を指定する必要があります。

<Context path="/hoge" docBase="hoge" debug="9"
 ↓
<Context path="/hoge" docBase="hoge.war" debug="9"

war ファイル名が分かりませんが、上のような変更をしてみてください。
詳細については、以下の URL の docBase の辺りを読めば判ると思います。

http://www.janit.com/TechnoInf/Java/Tomcat4.1/config/context.html

それでは失礼します。
HARU
会議室デビュー日: 2003/08/20
投稿数: 7
投稿日時: 2003-08-25 10:13
よいこさん
ご指摘ありがとうございました。
変更して、tomcatの再起動をしてみましたが
現象は変わりませんでした。
結局、tomcat起動時にシェルにて
warファイルを展開する事で対応する事にしました。
ただ、この項目については、まだ調べるつもりでいるので
何か分かりましたら報告させて頂きます。
よこい
会議室デビュー日: 2003/08/22
投稿数: 7
投稿日時: 2003-08-25 10:44
こんにちは「よこい」です(^^)
ひとつ言い忘れていたのですが、

server.xml に上記のような書き方をした場合、
webapps 以下に war ファイルは展開されません
work ディレクトリ以下に展開されます。

もし webapps 以下に war ファイルが展開される/されない
で、アプリケーションのデプロイ確認を行っているようであれば
そうではなく、一度動作確認を行ってみると良いと思います。

それでは。
たま
会議室デビュー日: 2003/06/25
投稿数: 1
投稿日時: 2003-09-02 20:51
もう解決されましたでしょうか。

既にhogeフォルダを作ってしまっているのであれば、
%Tomcat%webapps\hoge
をディレクトリごと削除してください。
また、webapps直下だとTomcatが自動認識してくれますので、
server.xmlへ追加した部分も必要ないので該当部分を削除します。
詳しくは以下を参照してください。

http://iihito.dip.jp/docs/java/no10/no10-5.html#10_5_3
swat
常連さん
会議室デビュー日: 2002/03/21
投稿数: 33
お住まい・勤務地: 埼玉県
投稿日時: 2003-09-03 14:49
swatです。

server.xmlにContextディレクティブを書き込んでしまっていると、webapps配下にwarファイルを置いてもその場所に自動展開されなかったような記憶があります。

server.xmlから、展開したいアプリケーションのContextディレクティブを削除してみたらどうなるか、試してみてください。
HARU
会議室デビュー日: 2003/08/20
投稿数: 7
投稿日時: 2003-09-03 15:00
swatさん、たまさん、よこいさん
適切なアドバイスありがとうございます。

Contextディレクティブを削除してみた所
無事展開する事ができました。
たまさんに教えて頂いたページの内容のとおりでしたね。

質問が初心者的な内容でしたが、
色々とありがとうございました。
鉄鬼(david)
会議室デビュー日: 2004/03/22
投稿数: 1
投稿日時: 2004-03-22 06:22
はじめまして、ネットです。
私のシステムは同じの問題でしたが、直しました。教えます。

[動作環境]
● SuSE 8.2
● Apache 1.3.27
● Tomcat 4.1.18

はじめに、${TOMCAT_HOME}を"ls -lF"で見てみてください。

コード:

drwxr-xr-x 2 root root 744 Mar 11 14:23 bin/
drwxr-xr-x 5 root root 120 Mar 11 14:23 common/
drwxr-xr-x 2 wwwrun root 360 Mar 21 15:29 conf/
drwxr-xr-x 2 wwwrun root 1040 Mar 21 14:49 logs/
drwxr-xr-x 5 root root 120 Mar 11 14:23 server/
drwxr-xr-x 4 root root 96 Mar 11 14:24 shared/
drwxr-xr-x 2 wwwrun root 80 Mar 21 15:29 temp/
drwxr-xr-x 15 root root 496 Mar 21 15:30 webapps/
drwxr-xr-x 3 wwwrun root 80 Mar 11 14:30 work/



"webapps"のディレクトリが"root"のユーザのだったら、悪いです。
"webapps"のディレクトリは"wwwrun"のユーザのに変わります。

コード:

drwxr-xr-x 15 wwwrun root 496 Mar 21 15:30 webapps/



Tomcatはwwwrunで実行しているから、rootの755のディレクトリの中で何でもしません。

--
David
tetsuoni3000@yahoo.co.jp


[ メッセージ編集済み 編集者: 鉄鬼(david) 編集日時 2004-03-22 06:49 ]

[ メッセージ編集済み 編集者: 鉄鬼(david) 編集日時 2004-03-22 06:51 ]
1

スキルアップ/キャリアアップ(JOB@IT)