1

まず主な問題:

システムが 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

これらすべてをクラスパスに追加するにはどうすればよいですか?

コードを最適化してください。今はオプションではありません。

4

1 に答える 1

2

クラスパスには次のものが必要です。

  • WEB-INF/classes - これには、WAR からのすべてのカスタム クラスが含まれます。
  • WAR のクラスが依存するライブラリのすべての jar
  • コマンドライン アプリケーションが依存しているすべての jar

編集:更新された質問に基づいて

java -jar -cp ".;D:\powerfollowups\trunk\WebContent\WEB-INF\lib\*;D:\powerfollowups\trunk\WebContent\WEB-INF\classes"  D:\powerfollowups\workspace\PFUReportSender\target\pwrFU-2.jar
于 2013-03-01T19:24:22.390 に答える