【问题标题】:Web-Inf, JSPs and useBeanWeb-Inf、JSP 和 useBean
【发布时间】: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.jsplocalkicks.com/test.jsp

标签: jsp servlets usebean


【解决方案1】:

这是一个欢迎文件的堆栈跟踪,与 FileB.jsp 无关。

【讨论】:

    【解决方案2】:

    描述太简单了,无法理解。

    我最好的猜测是这个 tomcat 的安全策略阻止 B.jsp 访问 kcc.Users(顺便说一句,它在 WEB-INF/classes 或一些 lib jar 中?),注意 tomcat/conf/policy.d

    【讨论】:

      【解决方案3】:

      检查你 FileB.jsp 我认为你缺少一些 jar 文件。标签库??

      【讨论】:

        【解决方案4】:

        tomcat根应用路径和虚拟主机下配置应用的方式有问题,基本上我需要在虚拟主机入口下创建一个ROOT文件夹。

        【讨论】:

          猜你喜欢
          • 2010-09-13
          • 1970-01-01
          • 2018-02-04
          • 1970-01-01
          • 1970-01-01
          • 2016-07-03
          • 2010-12-02
          • 2014-01-14
          • 2010-12-14
          相关资源
          最近更新 更多