- PR -

tomcatでwarファイルが自動展開しない

1
投稿者投稿内容
サキ
常連さん
会議室デビュー日: 2005/01/15
投稿数: 32
投稿日時: 2005-10-15 15:58
Linux9
tomcat4.1.31、
apache1.3.33,
jdk1.4.2

を使用しておりapache、tomcat連携にはmod_jk(Ajp13)を使用しております。
今回お聞きしたいのはwarを使用してアプリケーションの自動展開が2度目以降
展開できない事についてお聞きしたいと思います。

server.xmlの設定している主な内容は以下の通りです。
///////////////////////////////////////////////////////////////////////////////
<Host name="localhost" debug="0" appBase="webapps"
unpackWARs="true" autoDeploy="true">

<Connector className="org.apache.coyote.tomcat4.CoyoteConnector" port=
"8009" minProcessors="5" maxProcessors="75" enableLookups="true" redir
ectPort="8443" acceptCount="10" debug="0" connectionTimeout="0" useURI
ValidationHack="false" protocolHandlerClassName="org.apache.jk.server.
JkCoyoteHandler" />


<Context path="/sdf" docBase="sdf" debug="0" reloadable="true">
/////////////////////////////////////////////////////////////////////////////////

上記設定をしたあと一番最初はwebappl配下にsdf.warを配置してtomcatを再起動
したらうまく配備され,sdfディレクトリが作成されました。

配備された後再度同じ事ができるかと確認したくて、tomcatを停止した後に
webappsに作成されたsdfディレクトリを削除して、sdf.warを削除して、
再度同じwarをwebappsに配置してtomcatを起動したところエラーがでてしまい
配備ができませんでした。

エラー内容
///////////////////////////////////////////////////////////////
以前のエラーのために、コンテキストの起動が失敗しました
StandardContext[/sdf]: 起動が失敗した後のクリーンナップ中に例外が発生しました
コンテナ StandardContext[/sdf] はまだ起動されていません
///////////////////////////////////////////////////////////////

原因をご存知の方がいらっしゃいましたら、ご教授の程を宜しくお願い致します。
ちょま吉
大ベテラン
会議室デビュー日: 2004/08/04
投稿数: 112
投稿日時: 2005-10-16 12:09
tomcatはwarを展開した後、server.xmlに展開したWEBアプリの情報を書き込んだはずです。
そこで、強制的にWEBアプリを削除したことでserver.xmlと実際に配備されているWEBアプリとの整合性が損なわれるのではないでしょうか?

server.xmlのsdfアプリの箇所を削除すればWAR展開されると思います。
サキ
常連さん
会議室デビュー日: 2005/01/15
投稿数: 32
投稿日時: 2005-10-16 13:27
ご返答ありがとうございます。
server.xmlのsdfアプリの箇所(Context)を削除した事により
warが展開する事あができました。ありがとうございます。

しかし、これから同じ事を行う事により
server.xmlのsdfアプリの箇所(Context)はずさないといけないのでしょうか?
それとも整合性が取れていないのを整合性をとれる手順があるのでしょうか?

整合性の情報を消すコマンドとかはあるのでしょうか?
ご指導、ご教授の程を宜しくお願い致します。
ちょま吉
大ベテラン
会議室デビュー日: 2004/08/04
投稿数: 112
投稿日時: 2005-10-16 20:37
Tomcat4.1であればWEBアプリケーションのマネージャがあるはずです。
このマネージャ自体もWEBアプリケーションです。

このマネージャからアプリケーションの削除を行えば、クリック一発で展開されたアプリケーションもContextも自動的に削除されますよ。

デフォルトであれば、下記URLからアクセスできるはずです。
http://localhost:8080/manager/html
ユーザなどを聞かれますが、これは、tomcat-users.xmlで設定されているものです。
ユーザを追記してadmin,managerロールをあててあげれば何でもできるはずです。
サキ
常連さん
会議室デビュー日: 2005/01/15
投稿数: 32
投稿日時: 2005-10-16 21:51
ちょま吉様

度々ありがとうございます。
managerアプリケーションを使用してwarの削除を行う
事ができました。ありがとうございます。

またしつこいようですが、やはりコマンドwarの展開を行いたい
場合は、server.xmlの<Context>を消してからでないと駄目なの
でしょうか?
tomcatはどのような仕組みで、webアプリケーションの配備を記憶しているの
でしょうか?
ちょま吉
大ベテラン
会議室デビュー日: 2004/08/04
投稿数: 112
投稿日時: 2005-10-17 23:12
コマンドwarの意味がよくわからないのですが、
もしおっしゃられているのが、warコマンドで手動で展開して既存のアプリを上書きするということでしたら、それは可能かと思います。
ただし、あまりよくわからないのですが、web.xml等が変更されている場合は、tomcatの設定によってアプリの再起動が必要かもしれませんね。
ちょま吉
大ベテラン
会議室デビュー日: 2004/08/04
投稿数: 112
投稿日時: 2005-10-17 23:15
配備しているアプリケーションの情報は、多分、特別な設定をしないかぎりserver.xmlにしかないと思います。
tomcatは別の設定xmlを起動時に指定することも可能ですので。
1

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