【发布时间】:2013-01-06 10:22:56
【问题描述】:
我有以下网络结构
Root
- ----- Web-Inf
- --------- (classes, web.xml, etc...)
- ----- Members area (a normal folder)
- --------- FileB.jsp
- ----- FileA.jsp
我遇到了这个非常奇怪的问题,FileA 和 B.jsp 在它们的第一行都有
<jsp:useBean id="User" scope="session" class="kcc.Users"/>
FilaA.jsp 工作正常,但 FileB.jsp 似乎找不到错误的类
exception
org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.NoClassDefFoundError: kcc/Users
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:491)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:401)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause
javax.servlet.ServletException: java.lang.NoClassDefFoundError: kcc/Users
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:862)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)
org.apache.jsp.index_jsp._jspService(index_jsp.java:325)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
如何解决,谢谢。
【问题讨论】:
-
hmm,显然我必须将 jsps 放在根目录拖曳,如 FileA.jsp,但这是非常有限的,我在互联网上的几个地方发现了这个问题,但没有一个给出工作解决方案
-
这应该不是问题。您使用的是哪个 servlet 容器? Stacktrace 建议使用 Tomcat,但哪个版本?
-
@BalusC tomcat6,我在子目录中添加了 Web-inf 的副本,它可以工作,但这不是正确的做事方式
-
这是否与 ProxyPass 指令有关,因为我在 mod_jk 下使用了上述结构并且效果很好
-
为了更清楚地说明这一点,当从子目录访问 jsp 时,WEB-INF 文件夹似乎不再在我的类路径中,比较 localkicks.com/cpx/test.jsp 和 localkicks.com/test.jsp