从Tomcat启动新进程

时间:2013-02-05 12:06:16

标签: java tomcat process tomcat7

我遇到了以下问题:

我正在尝试从当前运行的Web应用程序启动一个新进程 Tomcat服务器。因此,Web应用程序应该能够启动新进程。 如果我从Tomcat尝试这个,没有任何反应。但是,如果我在自己的Java应用程序中使用相同的代码,而不是在Tomcat上运行,那么一切正常。

我错过了哪一部分? Tomcat是否不允许从Web应用程序启动新进程? 我是否必须设置特殊权限?

这里的Code,在独立的java应用程序中运行良好:

public class Test1 {

/**
 * @param args
 */
public static void main(String[] args) {
    String javaHome = System.getProperty("java.home");
    String javaBin = javaHome + File.separator + "bin" + File.separator
            + "java";
    String classpath = System.getProperty("java.class.path");
    String className = Test2.class.getCanonicalName();

    ProcessBuilder builder = new ProcessBuilder(javaBin, "-cp", classpath,
            className);

    Process process;

    try {
        process = builder.start();

         Scanner s = new
         Scanner(process.getInputStream()).useDelimiter("\\Z");
         System.out.println(s.next());

        process.getOutputStream().close();
        process.getErrorStream().close();
        process.getInputStream().close();
    } catch (IOException e) {
        e.printStackTrace();
    }

}

Test2.class除了打印" hello world"之外别无其他。在屏幕上。

1 个答案:

答案 0 :(得分:1)

您的问题至少来自不同的类路径内容。

但我同意你要做的不干净。

为什么不使用JMS在队列中发布作业并进行另一个MDB处理呢?