"java.lang.NumberFormatException: Cannot parse null string " 为什么我会遇到这个错误?

"java.lang.NumberFormatException: Cannot parse null string " why am I having this error?

package HRCproject;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.google.gson.Gson;

import HRCproject.pojo.*;

import HRCproject.JDBC_Connection ;
@WebServlet("/fetch")
public class fetch_sevelet extends HttpServlet {
/**
 * 
 */
private static final long serialVersionUID = 1L;

public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException 
{   
    res.setContentType("application/json");
    res.setCharacterEncoding("UTF-8");
    int max_rows = 500;
    PrintWriter out = res.getWriter();
    ArrayList<Invoice> data = new ArrayList<>();
    //get connection
    try {
    Class.forName(JDBC_Connection.JDBC_DRIVER);
    }
    catch (ClassNotFoundException e) {
        e.printStackTrace();
    }
    try {
        Connection con = DriverManager.getConnection(JDBC_Connection.URL,JDBC_Connection.USER,JDBC_Connection.PASS);
        System.out.println("Connection Succesful");
        
        String pageInURL = req.getParameter("page");
        int page = Integer.parseInt(pageInURL) * max_rows;
        

        // executing queries
        Statement stmt = con.createStatement();  
        ResultSet rs = stmt.executeQuery("SELECT * FROM winter_internship ORDER BY sl_no LIMIT " + page); 
         
        while (rs.next()) 
        {  
 Invoice s = new Invoice();
            
            s.setSl_no(rs.getInt("sl_no"));
            s.setBusiness_code(rs.getString("business_code"));
            s.setCust_number(rs.getString("cust_number"));
            s.setClear_date(rs.getString("clear_date"));
            s.setBuisness_year(rs.getInt("buisness_year"));
            String doc_id = rs.getString("doc_id");
            doc_id.replace("0","");
            s.setDoc_id(doc_id);
            s.setPosting_date(rs.getDate("posting_date"));
            s.setDue_in_date(rs.getDate("due_in_date"));
            s.setBaseline_create_date(rs.getDate("baseline_create_date"));
            s.setCust_payment_terms(rs.getString("cust_payment_terms"));
            s.setInvoice_currency(rs.getString("invoice_currency"));
            s.setDocument_type(rs.getString("document_type"));
            s.setPosting_id(rs.getString("posting_id"));
            s.setInvoice_id(rs.getInt("invoice_id"));
            s.setTotal_open_amount(rs.getDouble("total_open_amount"));
            
            data.add(s);
        } 
        Gson gson = new Gson();
        String invoices = gson.toJson(data);
        out.print(invoices);
        
        out.flush();
        
    }
    catch(SQLException e) {
        e.printStackTrace();
    }
    catch(Exception e) {
        e.printStackTrace();
    }
    
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
}
}

为什么会出现此错误? 我正在尝试从数据库中获取数据,然后获取 as json 文件。

我不知道代码中哪里有错误,如果有人可以提供帮助并找出解决问题的方法。 我试图用之前工作的不同代码替换 while 子句中的代码,因此 while 子句中似乎没有问题

一定是因为“gson.toJson(data);”此语句返回一个空对象,而您正试图以字符串格式存储它。 这就是为什么它给你一个错误。 试着调查一下。

必须在方法处抛出异常

Integer.parseInt()

尝试找出为什么下面的方法 returns null 到 String 对象。

req.getParameter("page")