import Debug Tomcat

本文提供了一个使用Java启动嵌入式Tomcat服务器的示例代码,演示了如何配置Tomcat的基本设置,包括加载项目路径、映射路径及Tomcat安装路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

来自javaeye

[code]import embedded.EmbeddedTomcatLauncher;

public class MyTomcatLauncher extends EmbeddedTomcatLauncher {
public static void main(String[] args) {
//开始运行嵌入式Tomcat,狠简单,就new一下当前类然后startTomcat()就行
new MyTomcatLauncher().startTomcat();
}

//这里返回你要加载的项目的绝对地Ö返ÄString数组
@Override
protected String[] getContextsAbsolutePath() {
return new String[] {
"/home/hongliang/workspace/scaffold/webapp"
};
}

//这里返回你上面写的项目要映射后的路径,跟上面的数组一一对应
@Override
protected String[] getContextsMappingPath() {
return new String[] {"/scaffold"};
}

//这里返回你embedded tomcat的地址
@Override
protected String getTomcatPath() {
return "/home/hongliang/libraries/tomcat/apache-tomcat-5.5.15-embed";
}
} [/code]

[code]package embedded;

import org.apache.catalina.Context;
import org.apache.catalina.Engine;
import org.apache.catalina.Host;
import org.apache.catalina.startup.Embedded;


public abstract class EmbeddedTomcatLauncher {
private Embedded tomcat;

protected EmbeddedTomcatLauncher() {
initEmbedded();
initShutdownHook();
}

protected abstract String[] getContextsAbsolutePath();

protected abstract String[] getContextsMappingPath();

protected abstract String getTomcatPath();

protected void startTomcat() {
try {
long startTime = System.currentTimeMillis();
tomcat.start();
System.err.println(
"Embedded Tomcat started in "
+ (System.currentTimeMillis() - startTime) + " ms."
);
} catch (Exception e) {
e.printStackTrace();
}
}

private void initEmbedded() {
tomcat = new Embedded();
tomcat.setCatalinaBase(getTomcatPath());

Host host =
tomcat.createHost(
"localhost",
tomcat.getCatalinaHome() + "/webapps"
);

String[] contexts = getContextsMappingPath();
String[] contextsPath = getContextsAbsolutePath();
Context context = null;

for (int i = 0; i < contexts.length; ++i) {
context = tomcat.createContext(contexts[i], contextsPath[i]);
host.addChild(context);
}

Engine engine = tomcat.createEngine();
engine.setName("MyDevAppServer");
engine.addChild(host);
engine.setDefaultHost(host.getName());

tomcat.addEngine(engine);
tomcat.addConnector(
tomcat.createConnector("localhost", 8080, false)
);
}

private void initShutdownHook() {
Runtime.getRuntime().addShutdownHook(
new Thread() {
public void run() {
stopTomcat();
}
}
);
}

private void stopTomcat() {
try {
tomcat.stop();
} catch (Exception e) {
e.printStackTrace();
}
}
}
[/code]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值