私は、リモートのTomcat 6.0サーバーでテストしているときに、多くの依存関係(18メガバイトのJARファイル..)その19メガバイトの依存関係をアップロードする必要はなく、クラスをアップロードするだけです。かなり簡単ですね。SpringベースのWARのJAR依存関係を外部化して展開する
私はうんざりな仕事をすることはできません。
私はEclipse 3.4を使用しています.Java Build Path-> OrderとExportですべての依存関係のエクスポートを削除しても、すばらしい小さなWARが得られます。
だからここに私が試したものです:
私は、サーバーへのLIBSのすべてをアップロードし、とTomcatで共通/ libにそれらを立ち往生。ディレクトリが存在していなかったので、私はそれを作成し、catalina.propertiesを修正:
shared.loader=${catalina.home}/common/lib/*.jar
私は他のconfigsの束を試してみたが、どれも働きました。サーバーを再起動すると、展開されたwarは起動に失敗します。具体的には:
SEVERE: Error configuring application listener of class org.springframework.web.context.ContextLoaderList$java.lang.ClassNotFoundException:org.springframework.web.context.ContextLoaderListener at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1
Log4Jリスナーをロードしようとすると、そのクラスパスで見つけることができません。リスナーが入っているspring libはcommon/libにあります。
また、完全な18メガバイトの戦争を展開すると、うまく動作します。すべてのinitsとアプリが始まります。もちろん、ローカルでもうまく動作します。
私は、ハードコードされたロギングJARをextrasフォルダから外したものと置き換えて、Log4jを動作させました。
ここにヘルプがありますか?なぜこれが動作していないのか分かりません。
これは実行可能です。 しかし、問題は、リモートサーバ(現時点ではプロダクションではなく、リモートからのdevサーバの設定)にデプロイするにはかなりの時間がかかります。jarファイルをWARファイルに保存するのがベストプラクティスであれば、すべてのアプリケーションで共有されるものはSpring、Hibernateなどのようなものです。これは共有アプリケーションサーバーではなく、このアプリケーションで使用されています。 –
また、VistaデベロッパーボックスをDebian EC2サーバーインスタンスと同じにするのは難しいです。はい、私はローカルにVBoxをセットアップすることができました。それは良いアイデアかもしれませんが、私がやったことではありません。 –
devboxが "同一"である必要はないと思いますが、ローカルで実行されているTomcatのJVMとバージョンが同じであることを除いては同じです。仮想マシンは不要です。単にTomcatのローカルインスタンスをインストールし、それを使用して展開しながら展開してください。バージョン管理システムを使用している場合は、テスト、コード、デプロイ、デバッグ、コミット、リンス、リピートなどのきめ細かな開発ループを行うことができます。 – duffymo