HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Unable to compile class for JSP: 
Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:85)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:415)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:308)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:308)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085)
org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:398)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
com.spk.fdt.action.DesktopAction.subPerform(DesktopAction.java:53)
com.spk.fdt.base.BaseAction.execute(BaseAction.java:34)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
com.spk.fdt.common.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:60)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.10 logs.
--------------------------------------------------------------------------------Apache Tomcat/6.0.10

解决方案 »

  1.   

    下面是我的JSP<%@ page contentType="text/html;charset=gb2312"%>
    <%@page import="com.spk.fdt.desktop.DesktopItem"%>
    <%@page import="com.spk.fdt.desktop.Desktop"%>
    <%@ page import="java.util.List" %>
    <%   Desktop desktop = (Desktop)request.getAttribute("desktop");
         String STATE = desktop.getSTATE();
      String StateStr = "";
      String FORM_ID=desktop.getFORMID();
      if(STATE.equals("0")) StateStr = "草稿";
      else if(STATE.equals("1")) StateStr = "启用";
      else if(STATE.equals("2")) StateStr = "停用";
     %><HTML>
    <HEAD>
    <TITLE>表单设计工具</TITLE>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <meta http-equiv='expires' content='0'>
    <meta http-equiv="Pragma" content="no-cache">
    <META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
    <link href="/include/css/cms_main.css" rel="stylesheet" type="text/css">
    <SCRIPT LANGUAGE="JavaScript" src="/include/js/jcommon.js"></SCRIPT>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function _delete()
    {
    var sForm = document.frm;
    var ids = "";
        for(var i=0;i<sForm.elements.length;i++)
        {
            if(sForm.elements[i].type=="checkbox")
            {
                if(sForm.elements[i].checked==true)
                {
                  ids = ids + ",'" + sForm.elements[i].value + "'";
                }
            }
        }
        if(ids == "")
        {
            alert("请选择要删除的字段!");
            return false;
        }
        else
        {
            ids = ids.substring(1);
        }    
    if(confirm("确实要删除这些字段吗?") != true)
    {
    return false;
    }
        sForm.fieldids.value = ids;
    sForm.action = "/desktop/DesktopAction.do?mode=newfield";
    sForm.submit();
    }function _active()
    {
    var sForm = document.frm;
    var ids = "";
        for(var i=0;i<sForm.elements.length;i++)
        {
            if(sForm.elements[i].type=="checkbox")
            {
                if(sForm.elements[i].checked==true)
                {
                    if(sForm.elements[i].iType=="0")
                    {
                        alert("您选择了已启用的字段!");
                        return false;
                    }else{
                      ids = ids + ",'" + sForm.elements[i].value + "'";
                    }
                }
            }
        }
        if(ids == "")
        {
            alert("请选择要启用的字段!");
            return false;
        }
        else
        {
            ids = ids.substring(1);
        }    
    if(confirm("确实要启用这些字段吗?") != true)
    {
    return false;
    }
        sForm.fieldids.value = ids;
        sForm.type.value = "0";//启用
    sForm.action = "/desktop/DesktopAction.do?mode=FieldUnuseServlet";
    sForm.submit();
    }function _unuse()
    {
    var sForm = document.frm;
    var ids = "";
        for(var i=0;i<sForm.elements.length;i++)
        {
            if(sForm.elements[i].type=="checkbox")
            {
                if(sForm.elements[i].checked==true)
                {
                    if(sForm.elements[i].iType=="1"){
                        alert("您选择了已经停用的字段!");
                        return false;
                    }else{
                      ids = ids + ",'" + sForm.elements[i].value + "'";
                    }
                }
            }
        }
        if(ids == "")
        {
            alert("请选择要停用的字段!");
            return false;
        }
        else
        {
            ids = ids.substring(1);
        }    
    if(confirm("确实要停用这些字段吗?") != true)
    {
    return false;
    }
        sForm.fieldids.value = ids;
        sForm.type.value = "1";//停用
    sForm.action = "/servlet/form/FieldUnuseServlet";
    sForm.submit();
    }function _new()
    {
    window.location.href = "/desktop/DesktopAction.do?mode=FieldNewServlet?formid=<%=FORM_ID%>";
    return;

    }
    function _subform()
    {
    var url = "/servlet/form/SubFormListServlet?formid=<%=FORM_ID%>";
    var winWidth = 800;
        var winHeight = 550;  
        var leftNum = (screen.availWidth - winWidth)/2;
        var topNum  = (screen.availHeight - winHeight)/2;
        window.open(url,"","location=no,menubar=no,toolbar=no,scrollbars=yes,width=" + winWidth + ",height=" + winHeight + ",resizable=yes,top=" + topNum + ",left=" + leftNum);
        return;

    }
    function _editor()
    {
    window.location.href = "/desktop/DesktopAction.do?mode=HTMLDisplayServlet?FORMID=<%=FORM_ID%>";
    return;

    }
    function _back(){
    window.location="/desktop/DesktopAction.do?mode=FormDisplayServlet?formid=<%=FORM_ID%>";
    }
    function _backToList(){
    window.location="/desktop/DesktopAction.do?mode=find";
    }
    //-->
    </SCRIPT>
    </HEAD>
    <BODY BGCOLOR=#333333 background="/images/home_background.gif" LEFTMARGIN=0 TOPMARGIN=0 MARGINWIDTH=0 MARGINHEIGHT=0> <table width="770" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF"> 
      <tr> 
        <td height="8" bgcolor="E3E8F8"> </td> 
      

  2.   

    </tr> 
      <tr> 
        <td height="500" align="center" valign="top"> <TABLE width=739 border=0 align=center cellspacing="3"> 
            <tr height="21" valign="bottom"> 
              <td width="500" class="lin3"><font color="FB4303">■ 当前位置 》表单设计工具 》字段列表</font></td> 
            </tr> 
            <tr> 
              <td height="8"> </td> 
            </tr> 
            
            
              <input type="hidden" name="FORM_ID" value="<%=FORM_ID%>"> 
              <input type="hidden" name="fieldids"> 
              <input type="hidden" name="type"> 
              <tr> 
                <TD width="100%">■ 表单基本信息</td> 
              </tr> 
              <tr> 
                <TD align="center"> <TABLE width=100% border=0 cellPadding=3 cellSpacing=1 bgcolor="#adbad6" class=table> 
                    <TR bgcolor="#F9F9F9"> 
                      <td width="11%" height="23" align="right">表单名称:</td> 
                      <td width="39%" height="23"><%=desktop.getFORMNAME()%></td> 
                      <td width="13%" height="23" align="right">数据库表名:</td> 
                      <td width="37% height="23"><%=desktop.getENTETYTABLE()%></td> 
                    </TR> 
                    <TR bgcolor="#F9F9F9"> 
                      <td height="23" align="right">表单描述:</td> 
                      <td height="23" colspan="3"><%=desktop.getFORMDESCRIPTION()%>&nbsp;</td> 
                    </tr> 
                  <%if( !("".equals(desktop.getFORMMODELCODE())) ) { %>
                  <TR bgcolor="#F9F9F9"> 
                    <td width="11%" height="23" align="right">表单模版:</td>
                    <td colspan="3" height="23"> 
                      <%=desktop.getFORMMODELNAME()%>&nbsp;
                    </td>
                  </tr>
                  <% } %>
                    <TR bgcolor="#F9F9F9"> 
                      <td height="23" align="right">应用名称:</td> 
                      <td height="23"><%=desktop.getAPPNAME()%>&nbsp;</td> 
                      <td height="23" align="right">表单状态:</td> 
                      <td height="23"><%=StateStr%></td> 
                    </TR> 
                  </table></td> 
              </tr> 
              <tr> 
                <td><br> 
                  <p> ■ 表单字段列表</p></td> 
              </tr> 
              <tr> 
                <TD align="center"> <TABLE width=739 border=0 cellPadding=3 cellSpacing=0 class=tr> 
                  <TR align=center bgColor=E3E8F8> 
                    <TD colSpan=2 class=td>编号</TD> 
                    <TD width=118 bgcolor="E3E8F8" class=td>字段名称</TD> 
                    <TD width=118 bgcolor="E3E8F8" class=td>字段代码</TD> 
                    <TD width=128 bgcolor="E3E8F8" class=td>类型</TD> 
                    <TD width=46 bgcolor="E3E8F8" class=td>主键</TD> 
                    <TD width=46 bgcolor="E3E8F8" class=td>外键</TD> 
                    <TD width=46 bgcolor="E3E8F8" class=td>非空</TD> 
                    <TD width=67 bgcolor="E3E8F8" class=td>默认值</TD> 
                    <TD width=53 bgcolor="E3E8F8" class=td>状态</TD> 
                  </TR> 
              <%
               List list = (List)request.getAttribute("desktopItemList");
               if(list!=null){
               for(int i=0;i<list.size();i++){
               DesktopItem Item =(DesktopItem)list.get(i);
              %>
                  <tr height="21" align="left"> 
                    <td class="td" width=28> <input name="FORMFIELD_ID" type=checkbox value="<%=Item.getFORMFIELDID()%>" <%if(Item.getISPRIMARYKEY()==0||Item.getISFROMMODEL()==0||STATE.equals("1")){%>disabled<%}%> iType="<%=Item.getSTATE()%>"> </td> 
                    <td width=28 class="td"  align="center"><%=i+1%></td> 
                    <td class="td" align="center"><%if(Item.getISPRIMARYKEY()!=0&&Item.getISFROMMODEL()!=0){%> 
                      <a href="/servlet/form/FieldDisplayServlet?fieldid=<%=Item.getFORMFIELDID()%>&formid=<%=FORM_ID%>"> 
                      <%}%> 
                      <%=Item.getFIELDNAME()%> 
                      <%if(Item.getISPRIMARYKEY()!=0&&Item.getISFROMMODEL()!=0){%> 
                      </a> 
                      <%}%></td> 
                    <td align="center" class="td"><%=Item.getFIELDCODE()%></td> 
                    <td align="center" class="td"><%=Item.getFIELDTYPE()%></td> 
                    <td align="center" class="td"><%if(Item.getISPRIMARYKEY()==0){out.print("是");} else {out.print("&nbsp");}%></td> 
                    <td align="center" class="td"><%if(Item.getISFOREIGNKEY()==0){out.print("是");} else {out.print("&nbsp");}%></td> 
                    <td align="center" class="td"><%if(Item.getISNULL()==0){out.print("是");} else {out.print("&nbsp");}%></td> 
                    <td align="center" class="td"><%if(Item.getDEFAULTVALUE().equals("")){out.print("&nbsp");} else {out.print(Item.getDEFAULTVALUE());}%></td> 
                    <td align="center" class="td"><%if(Item.getSTATE()==0){out.print("启用");} else {out.print("停用");}%></td> 
                  </tr> 
          
        
          </table> 
          <table width="680" border="0" align="center" cellpadding="0" cellspacing="0"> 
            <TR> 
              <TD align=center>&nbsp;</TD> 
            </TR> 
            <tr> 
              <td height="25" align="center"> <%if(!STATE.equals("1")){%> 
                <input name="Submit223" type="button" class="inputbutton"  style="cursor:hand;" value="新 建" onClick="_new()">&nbsp;&nbsp;
                <%}%> 
                <%if(STATE.equals("0")){%> 
                <input name="Submit224" type="button" class="inputbutton"  style="cursor:hand;" value="删 除" onClick="_delete()">&nbsp;&nbsp;
                <%}%> 
                <%if(STATE.equals("2")){%> 
                <input name="Submit242" type="button" class="inputbutton"  value="启 用" style="cursor:hand;" onClick="_active()">&nbsp;&nbsp;
                <input name="Submit243" type="button" class="inputbutton"  value="停 用" style="cursor:hand;" onClick="_unuse()">&nbsp;&nbsp;
                <%}%>
                <!-- 屏蔽子表按钮 by lxl 2004-04-19
                <input name="Submit2242" type="button" class="inputbutton"  style="cursor:hand;" value="子表信息" onClick="_subform()"> 
    &nbsp;&nbsp; 
    -->
                <input name="Submit22422" type="button" class="inputbutton"  style="cursor:hand;" value="<%if(STATE.equals("1")){%>查看<%}else{%>编辑<%}%>HTML页面" onClick="_editor()"> 
    &nbsp;&nbsp;
                <input type="button" name="button1" class="inputbutton" onClick="_back()" style="cursor:hand;" value="返 回"> 
    &nbsp;&nbsp;
                <input type="button" name="button1" class="inputbutton" onClick="_backToList()" style="cursor:hand;" value="返回到列表"> 
    &nbsp;&nbsp; </td> 
            </tr> 
          </table></td> 
      </tr> 
    </table> 
    </td></tr> 
    </table> 
    <table width="770" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF"> 
      <tr> 
        <td height="1" align="center" bgcolor="#adbad6"> </td> 
      </tr> 
      <tr> 
        <td height="40" align="center" bgcolor="#E3E8F8">&nbsp;</td> 
      </tr> 
    </table> 
    </BODY>
    </HTML>
      

  3.   

    这种问题的解决方法有几步,第一步,查看的JSP代码是否有错误,第二步,查看引用的包,是否将文件放置到了合适的路径下
    com.spk.fdt.desktop 这个包应该出现在 你的web目录下的web-inf/classes下
      

  4.   

    我查了好久了。jsp没错误,那个包一直都在那里。以前的几个页面都没错
      

  5.   

    问题解决了。原来是JSP里面没得到值,是null。