まず主な問題:
システムが 12 時に電子メールを送信しようとすると、Tomcat で過負荷になってシャットダウンする Web アプリケーションがあります。最初は数百しかありませんでしたが (サーバーの動作は良好でした)、今では数千になり、すべてがなくなりました。
これらのジョブを別の JVM で「実行」したいと考えています。その目的のために、Spring と休止状態のコンテキストをロードし、電子メールと SMS を送信するメソッドを呼び出すスタンドアロン アプリを作成するように依頼されました。コマンドライン経由でこれを実行します。しかし、彼らは、Tomcat のサーバーに存在するのと同じ「war」を使用したいと考えています (あらゆる種類のレプリケーションを回避します)。
私は Eclipse を介してアプリケーションを作成しました。実行すると、その魔法が実行されます。しかし、コマンドラインから実行しようとすると、クラスパスの参照の問題により、明らかに NoClassDefFoundError が発生します。「WEB-INF」ディレクトリへのパスを入れようとしましたが、成功しませんでした。このアプリを実行することを意味するのであれば、移植性を犠牲にすることは気にしません。
C:\Program Files\Java\jdk1.6.0_38\bin>java -jar -cp ".;D:\powerfollowups\trunk\WebContent\WEB-INF\lib\*;D:\powerfollowups\trunk\WebContent\WEB-INF\clases" D:\powerfollowups\workspace\PFUReportSender\target\pwrFU-2.jar
次のように、マニフェストのクラスパスにも入れようとしました。
Manifest-Version: 1.0
Main-Class: com.powerfollowups.StandAlonePFUReportSender
Class-Path: D:\powerfollowups\trunk\WebContent\WEB-INF\lib\* D:\powerfollowups\trunk\WebContent\WEB-INF\clases
これらすべてをクラスパスに追加するにはどうすればよいですか?
コードを最適化してください。今はオプションではありません。