`
Everyday都不同
  • 浏览: 713635 次
  • 性别: Icon_minigender_1
  • 来自: 宇宙
社区版块
存档分类
最新评论

tomcat的一些小问题,也醉

阅读更多

昨晚复习JSP相关知识,遇到一些小问题,我也是醉了。。。

1.加入外部tomcat时,对应的jre home应该是java->jdk的路径(jre所在jdk的路径),而不是java->jre

 

2.出现404错误很久很久。。。发现当在一个web工程上右键new->jsp时,默认会把jsp放在webRoot根路径下(与直接在webRoot下new jsp等价),而浏览器直接通过http://localhost:8080/webDemo/xxx.jsp即可访问,无需通过http://localhost:8080/webDemo/webRoot/xxx.jsp来访问;受相关书籍影响,如果把JSP挪到webRoot外面,与webRoot同级位置,表面上是位于web工程的跟路径下,符合http://localhost:8080/webDemo/xxx.jsp

的访问习惯,但是无论如何都会出现404错误。。。困扰很久(tomcat->work->catalina->localhost下根本没有相应的编译出来的类jsp)。

 

3.出现端口8080占用:cmd窗口,netstat ->ano | findstr "8080" 查看哪个PID占用了tomcat的8080端口? tasklist查看哪个进程名对应占用端口的PID,kill掉即可,再重启tomcat;

 

4加入外部tomcat时,必须选上enabled,才会在server窗口出现你所加入的tomcat。。。

 

5.servelt注解技术:(如servlet 3.x)Servlet3是Java EE6规范的一部分,必须升级到支持此规范的IDE工具和tomcat jdk版本。。。。。

 

6.tomcat放在eclipse中启动,控制台没有报错,但是在地址栏输入loclahsot:8080却看不到tomcat主页。——解决办法:双击server下的tomcat服务器,在server locations选择中间项:use tomcat installation.

并且控制台还出现如下警告:

StandardServer.await: Invalid command '' received

——解决办法:查看tomcat所使用的jdk版本跟配置的环境变量里jdk的版本是否一致,不一致则改成环境变量里jdk的安装版本,重启成功出现欢迎界面

 

7.部署项目到tomcat可以通过修改tomcat的conf/server.xml文件。在<Host></Host>下添加以下东西:

<Context path="/demo" docBase="E:\mywork\项目名称\WebRoot" reloadable="true" />

 

8.搭建spring环境时,需要把一些常用的common包全部导入,否则会启动tomcat失败!

否则会报错:Java.lang.NoClassDefFoundError:org/apache/commons/logging/LogFactory

注意:并不是打日志才需要这些common-logging包(还有其他common包),spring启动也是需要这些common包的。

 

9.tomcat启动成功,输入localhost:8080有欢迎界面,但输入localhost:8080/项目名 无法出现欢迎页面,404:

1)首先排查项目名有没有写错

2)没写错再确定tomcat的设置页面(打开方式见情况6)里Server Locations->Deploy path是不是tomcat下的webapps路径(默认不是,是wtswebapps),不是的话修改。修改完之后即可成功访问项目主页面。

 

10.tomcat的另一种“高级”部署方法(更新于2016/12/5)

搞开发也快3年了。。竟然到现在才发现这种高端的项目部署方式。。

1)首先,在eclipse里面双击tomcat,打开界面;

2)需注意Ports部分可以修改tomcat的一些端口,比如HTTP/1.1可以修改访问端口,而Server Locations一定要选择中间那一项~

2)打开Open launch configuration,切换至source选项卡,点击Add按钮:

可打开Add source界面,然后选择“Java Project”选项,选择相应的项目:

 点击“ok”。

 

3)切换至“Modules”标签页,选择Add External  Web Module,选择相应的项目并设置Path,这里的Path将是访问页面时的上下文,再保存界面设置,其中Document base要设置到项目的WEB-INF/classes所在的父目录,这里是WebContent;Auto reloading enabled不勾选:

 
注:这里的Path默认 是和项目同名的,但是如果你设置了项目的 Web Project Settings里面的Context root,则这里的Path将会显示你设置的Context root(也就是你再输入项目访问路径时的上下文)。但注意,如果你是部署成功以后再修改Context root,然后访问的时候再输入你设置的上下文会报404,意味着对默认Context root的修改必须是在部署之前进行才能成功!

4)之后启动项目即可。在项目比较少的情况下觉得没必要,但是一旦项目多了且需要同时启动,这种做法就比较优雅。

 

============== 更多的问题亟待发现,所以基础的东西还是很重要的。。。 =============

 

总结:一般熟悉了框架技术,这种基础的东西再复习会发现诸多问题。虽然不太顺利,但也巩固了jsp编译成类servlet的运行原理,以及tomcat work目录下到底放的是什么。。。。。

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics