Embeded tomcat可以提高开发效率,具有部署方便、跨平台等优点。
在项目之处应用Embeded tomcat6,结果在tomcat.start()后要应用Thread.sleep(10000)方法使其沉睡用户才有时间访问,使用tomcat.await()方法也无济于事(没仔细查资料,望有经验的朋友不吝指教,:))。因此只能升级到Embeded tomcat7,问题解决了。
在项目之处应用Embeded tomcat6,结果在tomcat.start()后要应用Thread.sleep(10000)方法使其沉睡用户才有时间访问,使用tomcat.await()方法也无济于事(没仔细查资料,望有经验的朋友不吝指教,:))。因此只能升级到Embeded tomcat7,问题解决了。
import java.io.File;
import javax.servlet.ServletException;
import org.apache.catalina.LifecycleException;
import org.apache.catalina.startup.Tomcat;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class EmbededTomcat {
private final Log log = LogFactory.getLog(getClass());
public void start() throws Exception{
Tomcat tomcat= new Tomcat();
String projectPath=new File("").getAbsolutePath();
tomcat.setBaseDir(projectPath); //Embeded tomcat存放路径
tomcat.setPort(8080);
try {
tomcat.addWebapp("", projectPath+"/webapps/myweb");//应用存放路径
} catch (ServletException e) {
e.printStackTrace();
log.error(e.getMessage());
throw e;
}
try {
tomcat.start(); // 启动
} catch (LifecycleException e) {
e.printStackTrace();
log.error(e.getMessage());
throw e;
}
log.info("Tomcat started.");
tomcat.getServer().await(); // 这个一定要
}
}