通过Eclipse3.1以上启动Tomcat访问不到tomcat管理界面的问题(转载)

通过Eclipse插件启动Tomcat的问题

默认分类   2009-10-23 15:54   阅读118   评论0  
字号:     小

目前在通过Eclipse中插件启动Tomcat时遇到了个问题,就是访问http://localhost:8080/时出现HTTP Status 404 The requested resource (/) is not available.错误,但是通过http://localhost:8080/myapp访问项目时却没有问题,系统配置没有问题,而且手动运行%TOMCAT_HOME%/bin中的startup.bat和shutdown.bat都没有问题,能正确访问http://localhost:8080/http://localhost:8080/managerhttp://localhost:8080/admin/index.jsp

开发环境
Eclipse

Version: 3.4.2

Build id: M20090211-1700

Tomcat 6.0.18

Tomcat插件

wtp-sdk-R-3.0.4-20090213193639

org.eclipse.jst.server.tomcat.core_1.1.104.v20081006.jar

org.eclipse.jst.server.tomcat.ui_1.1.101.v20080620.jar

解决方法
通过手动启动Tomcat时,是采用%TOMCAT_HOME%/webapps(包括docs,host-manager,manager,ROOT4个目录)作为默认的webapp目录的,%TOMCAT_HOME%/webapps目录下包括ROOT,对应服务器的根目录“/”,也就是通过http://localhost:8080/访问看到的Tomcat Welcome页面。

如果在Eclipse中通过插件启动Tomcat,则是采用%ECLIPSE_WORKSPACE_HOME%/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps作为webapp目录的,wtpwebapps下没有ROOT webapp或者有时包括一个空的ROOT webapp。在这种情况下,访问http://localhost:8080/就会看到HTTP error 404 或者一个空白页面。如果把%TOMCAT_HOME%/webapps下的docs,host-manager,manager,ROOT目录拷贝到wtpwebapps目录下,此时也是可以通过http://localhost:8080/访问看到的Tomcat Welcome页面。

Eclipse中的Tomcat插件默认是把%ECLIPSE_WORKSPACE_HOME%/.metadata作为Server Location的,因此当通过Eclispe插件启动Tomcat时,服务器中只运行了Eclipse工作空间中已发布到Tomcat上的项目。

双击Server视图中的“Tomcat 6 at localhost”,打开一个Tomcat Server编辑器,有一栏“Server Locations”是配置服务器的位置。注意:如果已经有项目Publish到Server上了(启动应用也会发布项目),Server Locations栏是不可修改的,可以先Remove项目并Clean Server,使Server Locations栏可修改。选择“Use Tomcat installation”,通过Eclispe插件启动Tomcat时,%TOMCAT_HOME%/webapps目录下的所有应用都会被启动。

如果只想运行Eclipse工作空间的应用项目,可以选择“Use workspace metadata”;反之如果希望同时运行其他Eclipse工作空间之外的应用项目,就可以选择“Use Tomcat installation”。

Tomcat6.0.18的配置问题 
在解决问题的过程中还遇到另外一个问题,手动启动Tomcat6.0.18时也不能访问http://localhost:8080/host-manager,同样报HTTP Status 404 The requested resource (/) is not available.错误,而Tomcat5.0.25中就不存在这个问题。

原因:Tomcat6.0.18与Tomcat5.0.25的默认配置有一些不同。Tomcat6处于安全性的考虑,默认关闭了目录浏览功能的。否则,要是访问目录下没有默认首页,那么该目录下的文件列表就泄露了。

Tomcat-6.0.18/conf/web.xml配置如下:

<servlet>

<servlet-name>default</servlet-name>

<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>

<init-param>

<param-name>debug</param-name>

<param-value>0</param-value>

</init-param>

<init-param>

<param-name>listings</param-name>

<param-value>false</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>

同样的配置选项在Tomcat-5.0.25/conf/web.xml中配置如下:

<servlet>

<servlet-name>default</servlet-name>

<servlet-class>

org.apache.catalina.servlets.DefaultServlet

</servlet-class>

<init-param>

<param-name>debug</param-name>

<param-value>0</param-value>

</init-param>

<init-param>

<param-name>listings</param-name>

<param-value>true</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>

解决方法就是把Tomcat-6.0.18/conf/web.xml中的false改为true。

 
原文地址:http://blog.csdn.net/miwucc/article/details/5191513
上一篇:哈,我自己翻译的小书,马上就完成了,是讲用python处理大数据框架hadoop,spark的


下一篇:三层--删除