gpt4 book ai didi

java - 从 Tomcat 启动新进程

转载 作者:行者123 更新时间:2023-11-28 23:03:14 26 4
gpt4 key购买 nike

我遇到了以下问题:

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

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

这里是代码,它在独立的 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”之外什么都不做。

最佳答案

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

但我同意您尝试做的事情并不干净。

为什么不使用 JMS 将作业发布到队列中并让另一个 MDB 处理它?<​​/p>

关于java - 从 Tomcat 启动新进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14707165/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com