2012-08-07 83 views
1

我已经加入以下内容到我的web.xml中的servlet上下文监听器后,APP-无法看到JSP文件---的Java Web内容添加到web.xml的servlet上下文监听

<listener> 
<listener-class> 
com.anyaservices.log4j.ApplicationServletContextListener 
</listener-class> 
</listener> 

我的

欢迎文件列表节点的最后一行below--

</welcome-file-list> 

现在给出的,我已经做了一些改动,以“欢迎文件列表”结束后立即添加这这样的servlet它可以使用上下文监听器......除了servlet之外,还有一个“Hello.jsp”文件,它只显示一条欢迎消息。

我还没有对JSP文件进行任何更改。但是,当我的代码更改为servlet上下文侦听器时,当我尝试去Hello.jsp时,在Tomcat中出现错误=请求的资源不可用。

我在这里做了什么错?为什么现在不显示JSP文件?

EDIT--我已经张贴了我的web.xml的below--

<?xml version="1.0" encoding="UTF-8"?> 
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> 
    <display-name>Test Web Application</display-name> 
    <welcome-file-list> 
     <welcome-file>index.html</welcome-file> 
     <welcome-file>index.htm</welcome-file> 
     <welcome-file>index.jsp</welcome-file> 
     <welcome-file>default.html</welcome-file> 
     <welcome-file>default.htm</welcome-file> 
     <welcome-file>Hello.jsp</welcome-file> 
    </welcome-file-list> 
    <listener> 
    <listener-class> 
    com.test.log4j.ApplicationServletContextListener 
    </listener-class> 
    </listener> 
    <servlet> 
     <description>Used to run a single crawl job</description> 
     <display-name>runsinglecrawljob</display-name> 
     <servlet-name>runsinglecrawljob</servlet-name> 
     <servlet-class>com.test.runsinglecrawljob</servlet-class> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>runsinglecrawljob</servlet-name> 
     <url-pattern>/runsinglecrawljob</url-pattern> 
    </servlet-mapping> 
    <servlet> 
     <description>Home page</description> 
     <display-name>home</display-name> 
     <servlet-name>home</servlet-name> 
     <servlet-class>home</servlet-class> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>home</servlet-name> 
     <url-pattern>/home</url-pattern> 
    </servlet-mapping> 
    <servlet> 
     <description>Run a single crawl job after asking users for parameters of that  job</description> 
     <display-name>runsinglejob</display-name> 
     <servlet-name>runsinglejob</servlet-name> 
     <servlet-class>com.test.runsinglecrawljob</servlet-class> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>runsinglejob</servlet-name> 
     <url-pattern>/runsinglejob</url-pattern> 
    </servlet-mapping> 

    </web-app> 

我试图访问的URL的全部内容为:http://本地主机:8080/test_web_app/hello.jsp中

+0

您能否发布您正在访问的整个web.xml和URL? – evg 2012-08-07 20:42:15

+0

@EugenePavlovsky请参阅我的编辑... – Arvind 2012-08-07 20:48:26

回答

0

Tomcat通过org.apache.jasper.servlet.JspServlet处理JSP文件。也许不知何故,你的监听器类正在干扰JspServlet的操作。无需在欢迎文件列表中列出所有这些文件。战争中的任何jsp文件都应该可用(但不应该放在WEB-INF或META-INF文件夹内)。

我认为你应该检查你的log4j配置。你是否在WEB-INF/classes中用log4j.properties文件初始化了log4j?