读书人

tomcat使用两年遇见的罕见有关问题。关

发布时间: 2012-01-28 22:06:13 作者: rapoo

tomcat使用两年遇见的罕见问题。。。关于路径的解析,各位高手都进来看一下
本人开发的项目,在自己的tomcat上是完全好用的,但当上传到服务器后,编辑器的一个上传组件就不好用了。经过了几天的分析,发现了一个特别奇怪的现象。当应项目中的目录不存在的时候,一切都正常,但当访问路径中的目录存在的时候,servlet映射,<error-page>错误页转向,全都不灵了,无视web.xml的存在,不知道诸位专家有谁遇见过这种情况?详细说明如下:
服务器是IIs6+tomcat5.5,用的是jk1整合
目录存在的情况 http://www.fcgjjt.com:8080/fckeditor/dfsdf
目录不存在的情况 http://www.fcgjjt.com:8080/fckedi/dfdf


<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/shop-dao.xml,
/WEB-INF/shop-service.xml,
/WEB-INF/shop-servlet.xml
</param-value>
</context-param>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>WEB-INF/log4j.properties</param-value>
</context-param>

<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>60000</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<servlet>
<servlet-name>context</servlet-name>
<servlet-class>
org.springframework.web.context.ContextLoaderServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet>
<servlet-name>shop</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>shop</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>shop</servlet-name>
<url-pattern>*.view</url-pattern>
</servlet-mapping>
<filter>
<filter-name>SetCharactorEncoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>SetCharactorEncoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<display-name>FCKeditor.Java Sample Web Application</display-name>
<description>FCKeditor.Java Sample Web Application</description>

<servlet>
<servlet-name>Connector</servlet-name>
<servlet-class>
net.fckeditor.connector.ConnectorServlet
</servlet-class>
<load-on-startup>3</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>Connector</servlet-name>
<url-pattern>
/fckeditor/editor/filemanager/connectors/*
</url-pattern>
</servlet-mapping>


<mime-mapping>
<extension>shs</extension>
<mime-type>application/shs</mime-type>
</mime-mapping>


<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

<error-page>
<error-code>404</error-code>
<location>/error/404.html</location>
</error-page>

<error-page>
<error-code>400</error-code>
<location>/error/400.html</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/error/500.html</location>
</error-page>
<error-page>
<error-code>503</error-code>
<location>/error/503.html</location>
</error-page>
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/error/500.html</location>
</error-page>
<error-page>
<exception-type>java.lang.NullPointerException</exception-type>
<location>/error/500.html</location>
</error-page>


</web-app>


[解决办法]

任何和目录出现奇怪现象的,你都可以把你的目录放到非tomcat目录下看看,比如

d:\myproject下面,不要放到tomcat\下面

这样能杜绝好多的问题。

还有你的host配置,不要修改appBase设置,保持默认的 webapps 就好了。

context里面的docBase 指向你的项目路径就可以

读书人网 >J2EE开发

热点推荐