我在linux 下搭了这样的一个环境apache + tocmat + struts
一般的情况下运行都没有问题,不过偶尔会出现NoClassDefFoundError错误,但错误信息里没有指明是缺了那个class,望高手们指点指点?万分感谢!javax.servlet.ServletException
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:867)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:800)
org.apache.jsp.Jsp.defence.DosAttack_jsp._jspService(DosAttack_jsp.java:485)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1056)
org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:388)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:231)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1158)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
com.hy.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:35)
com.hy.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:35)
root cause java.lang.NoClassDefFoundError
java.lang.Class.forName0(Native Method)
java.lang.Class.forName(Class.java:141)
org.apache.jsp.Jsp.defence.DosAttack_jsp.class$(DosAttack_jsp.java:338)
org.apache.jsp.Jsp.defence.DosAttack_jsp._jspx_meth_bean_message_0(DosAttack_jsp.java:496)
org.apache.jsp.Jsp.defence.DosAttack_jsp._jspService(DosAttack_jsp.java:113)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1056)
org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:388)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:231)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1158)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
com.hy.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:35)
com.hy.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:35)

解决方案 »

  1.   

    到你的服务器下把你的web-inf/lib把相应的包打开看看有没有.class文件
    不过我估计你是把所有文件放在同一路径下的,但是class文件被编译到web/inf/classes下面去了
      

  2.   

    star_str(生命火花) 兄:
    到你的服务器下把你的web-inf/lib把相应的包打开看看有没有.class文件
    不过我估计你是把所有文件放在同一路径下的,但是class文件被编译到web/inf/classes下面去了
    ---------------------------------------------------------------------------------------可以详细点吗?万分感谢!!
      

  3.   

    由于问题出现了几次,我查了一下编译后的JSP代码发现出错的都在下面待"***"的语句中,不过奇怪的是问题只是偶然出现,而且出现在不同的页面:
    private boolean _jspx_meth_bean_message_0(PageContext _jspx_page_context)
              throws Throwable {
        JspWriter out = _jspx_page_context.getOut();
        //  bean:message
        *** org.apache.struts.taglib.bean.MessageTag _jspx_th_bean_message_0 = (org.apache.struts.taglib.bean.MessageTag) _jspx_tagPool_bean_message_key.get(org.apache.struts.taglib.bean.MessageTag.class);
        _jspx_th_bean_message_0.setPageContext(_jspx_page_context);
        _jspx_th_bean_message_0.setParent(null);
        _jspx_th_bean_message_0.setKey("page.title");
        int _jspx_eval_bean_message_0 = _jspx_th_bean_message_0.doStartTag();
        if (_jspx_th_bean_message_0.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE)
          return true;
        _jspx_tagPool_bean_message_key.reuse(_jspx_th_bean_message_0);
        return false;
      }