|
来自javaeye
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";
}
}
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, contextsPath);
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();
}
}
} |
|
|