2.2 Build项目
点击Build按钮开始构建项目,会提示:“java: 程序包trailers不存在。”和“找不到符号 ResponseTrailers”,两个错误都出现在test文件夹。缺少的文件都在webapps/examples/WEB-INF/classes文件夹,
拷贝文件夹“webapps/examples/WEB-INF/classes/trailers”到“test”文件夹下。
拷贝文件“webapps/examples/WEB-INF/classes/util/CookieFilter.java”到“test/util”文件夹下。
此时再次Build不再出错。
3. 排查启动问题
找到文件“java/org/apache/catalina/startup/Bootstrap.java”,其中的main方法是Tomcat的启动起点。
Run这个方法,启动Tomcat,默认地址为“http://localhost:8080/“。
3.1 端口被占用
默认会监听8080端口,如图提示被占用,可以去“conf/server.xml”文件中修改:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
3.2 提示Jsp相关的如下错误
修改“java/org/apache/catalina/startup/ContextConfig.java”文件,在configureStart方法中添加一行代码,位置如下面所示:
protected synchronized void configureStart() { // 此处省略一部分代码 webConfig(); // 添加下面一行代码 context.addServletContainerInitializer(new JasperInitializer(), null); if (!context.getIgnoreAnnotations()) { applicationAnnotationsConfig(); }
再次启动,可以看到熟悉的页面了。
3.3 输出窗口提示找不到“XXXListener”
可以看到如下错误:
和2.2中遇到的错误类似,对应的文件还是存在于“webapps/examples/WEB-INF/classes”文件夹中:
而“webapps/examples/WEB-INF/web.xml”中对这几个Listener做了引用。