可以在独立的Java应用程序中添加/加载爆炸战争吗?

时间:2013-03-01 19:13:06

标签: java classpath war

首先是主要问题:

我们在tomcat中有一个Web应用程序,当系统尝试在12点发送电子邮件时会超载并关闭。起初它只有数百个(并且服务器表现良好)但现在已经有数千个并且用完所有东西。

我们希望在不同的JVM中“运行”这些作业。为此,我被要求创建一个独立的应用程序来加载Spring和hibernate上下文并调用发送电子邮件和短信的方法;并通过命令行运行。但他们希望使用驻留在tomcat服务器中的相同“战争”(避免任何类型的复制)。

enter image description here

我已经通过Eclipse创建了应用程序,当我点击运行时,它发挥了它的魔力。但是当我尝试通过命令行运行它时,我得到一个NoClassDefFoundError,显然,由于ClassPath引用问题。我试图将路径放到“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

我也尝试将它放在清单的Class-Path中,如下所示:

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

如何将所有这些添加到类路径中?

优化代码现在不是一个选项。

1 个答案:

答案 0 :(得分:2)

你需要在类路径上做一些事情:

  • WEB-INF / classes - 包含WAR
  • 中的所有自定义类
  • 您WAR中的类所依赖的所有库的库
  • 您的命令行应用程序所依赖的所有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