首页 > 解决方案 > 如何在 Eclipse 的动态 Web 项目中修复 org.apache.catalina.core.StandardWrapperValve 调用

问题描述

我尝试从 servlet 获取字符串并在网页中显示它们,但在下面得到错误喜欢。我该如何解决这个错误?这是由 servlet 编码或 ajax 编码引起的吗?有什么办法解决吗?我使用表单动作将数据提供给后端,并使用 ajax 接收来自 servlet 的反馈。有更好的选择吗?

SEVERE: Servlet.service() for servlet [com.tsinghua.QueryServlet] in context with path [/ReportingFunction] threw exception
java.lang.NumberFormatException: null
    at java.base/java.lang.Integer.parseInt(Integer.java:614)
    at java.base/java.lang.Integer.parseInt(Integer.java:770)
    at com.tsinghua.QueryServlet.doGet(QueryServlet.java:39)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:615)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:818)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1627)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.base/java.lang.Thread.run(Thread.java:834)

有我的ajax代码

<script>
$(document).ready(function(){
        $.ajax({
            url: "http://localhost:8080/ReportingFunction/QueryServlet",
            type: "GET",
            dataType: "json",
            success: function(NewArray){
                
                showData(NewArray);
            },
            error: function(msg){
                alert("ajax连接异常!!!!:&quot;+msg);
            }
        });
    });
</script>

和我的 servlet 代码

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  // TODO Auto-generated method stub
     String GetName = request.getParameter("name");
     int GetAgeFrom = Integer.parseInt(request.getParameter("from"));
     int GetAgeTo = Integer.parseInt(request.getParameter("to"));
     PrintWriter respWritter=response.getWriter();

  try {
      
      String filePath = this.getServletContext().getRealPath("/WEB-INF/data.json");
      String jsonStr = JsonUtils.readJsonFile(filePath);
      JSONArray jsonArray = JSONArray.fromObject(jsonStr);
         //System.out.print(jsonArray);
      JSONArray NewArray = new JSONArray();
      for(int i=0;i<jsonArray.size();i++)
      {
       JSONObject object = (JSONObject) jsonArray.get(i);
       String JsonName= object.getString("name");
      //System.out.print(JsonName);
       int JsonAge=object.getInt("age");
      // System.out.print(JsonAge);
       if(GetAgeFrom <= JsonAge && JsonAge <= GetAgeTo)
       {
           if(JsonName.equals(GetName))
           {
               NewArray.add(object);
               String result=object.toString();
               //System.out.print(result);
               //respWritter.append(result);
               
           }
           else if (GetName.equals(""))
           {
               NewArray.add(object);
               String result=object.toString();
               request.setAttribute("result", result);
               //System.out.print(result); 
              // respWritter.append(result);    

           }
       }
      };
      respWritter.append(NewArray.toString());
      respWritter.write(NewArray.toString());
      
      
     }
   catch (Exception ex) {
    
    ex.printStackTrace();
   
   }
  
 }

标签: javaajaxeclipseservletsweb-project

解决方案


推荐阅读