有没有办法在不进入'Servers'并点击'Run'的情况下启动在eclipse中运行的tomcat服务器?我希望进行功能测试,设置属性文件,然后启动服务。 在真正的功能测试环境中,我正在重新启动Windows服务,但是当我开发新测试并且“服务”在我的日食中本地运行时,我想要这种能力。
任何提示/想法?
答案 0 :(得分:1)
据我所知,您有3个选项(按优先顺序列出):
答案 1 :(得分:0)
您可以构建一个轻量级的嵌入式实例进行测试,其内容如下:
import org.apache.catalina.startup.Tomcat;
String TEMP_DIR = System.getProperty("java.io.tmpdir");
// Init tomcat
tomcat = new Tomcat();
tomcat.setPort(0);
tomcat.setBaseDir(TEMP_DIR);
tomcat.getHost().setAppBase(TEMP_DIR);
// Init servlet
File docBase = new File(TEMP_DIR);
Context ctx = tomcat.addContext("", docBase.getAbsolutePath());
Tomcat.addServlet(ctx, "test", new DefaultServlet());
ctx.addServletMapping("/*", "test");
// Start tomcat
tomcat.init();
tomcat.start();
//--------------------
// Do something useful
//--------------------
tomcat.getEngine().getLogger().info("Logging with embedded tomcat");
// Stop tomcat
if (tomcat.getServer() != null
&& tomcat.getServer().getState() != LifecycleState.DESTROYED) {
if (tomcat.getServer().getState() != LifecycleState.STOPPED) {
tomcat.stop();
}
tomcat.destroy();
}
此语法适用于tomcat 7+但据我所知早期版本使用的嵌入机制略有不同