Сервлет Fileupload, показывающий исключение nullpointer
уважаемый господин,
Я написал бизнес логику в сервлете :
1 package com.rfmsSite.upload; 2 3 import java.io.FileNotFoundException; 4 import java.io.IOException; 5 import java.io.InputStream; 6 import java.io.PrintWriter; 7 import java.sql.Connection; 8 import java.sql.PreparedStatement; 9 import java.sql.SQLException; 10 import java.sql.Statement; 11 12 import javax.servlet.ServletException; 13 import javax.servlet.annotation.MultipartConfig; 14 import javax.servlet.annotation.WebServlet; 15 import javax.servlet.http.HttpServlet; 16 import javax.servlet.http.HttpServletRequest; 17 import javax.servlet.http.HttpServletResponse; 18 import javax.servlet.http.Part; 19 20 import org.apache.coyote.http11.InputFilter; 21 22 import com.rfmsSite.util.DBhelper; 23 24 @WebServlet("/uploadBlob") 25 @MultipartConfig 26 public class UploadServlet extends HttpServlet{ 27 public static Part filepart=null; 28 public static Connection conn =null; 29 public static PreparedStatement stmt = null; 30 public static final String upload_xls = "insert into attachment values(?);"; 31 @Override 32 protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 33 // TODO Auto-generated method stub 34 PrintWriter out = resp.getWriter(); 35 resp.setContentType("text/html"); 36 37 filepart = req.getPart("Upload file"); 38 InputStream excl_bytes = null; 39 try 40 { 41 if(!filepart.getContentType().equals("application/vnd.ms-excel")) //line 41 42 { 43 out.println("<br> invalid file format"); 44 return; 45 } 46 else if(filepart.getSize()>10240000) 47 { 48 out.println("<br> File size too big"); 49 return; 50 } 51 52 excl_bytes = filepart.getInputStream(); 53 final byte[] bytes = new byte[excl_bytes.available()]; 54 excl_bytes.read(bytes); 55 try 56 { 57 conn = DBhelper.createConnection(); 58 int success=0; 59 stmt = conn.prepareStatement(upload_xls); 60 stmt.setBytes(2, bytes); 61 success = stmt.executeUpdate(); 62 if(success>=1) 63 { 64 out.println("br>File successfully stored"); 65 } 66 } 67 catch (SQLException e) { 68 out.println(e); 69 System.exit(0); 70 } 71 // TODO: handle exception 72 } 73 74 finally 75 { 76 if(excl_bytes!=null) 77 { 78 excl_bytes.close(); 79 } 80 81 if(out!=null) 82 { 83 out.close(); 84 } 85 } 86 } 87 }
Вот:
код страницы jsp:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>File Upload</title> </head> <body> <a href="Home.html">Home</a> <a href="ExcelServlet">Excel data</a> <hr> <form action="uploadBlob" method="post" enctype="multipart/form-data"> <table> <tr> <td><input type="file" name="file1"><td> </tr> <tr><td colspan="2"> <input type="submit" value="Upload file" name="upload"/> </table> </form> </body> </html>
когда я запускаю это приложение , то возникает это исключение:
application/application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
Что я уже пробовал:
if(!filepart.getContentType().equals("application/application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"))
ZurdoDev
Что-то есть нуль. Все, что вам нужно сделать, это отладить его и найти, какая строка кода вызывает ошибку, а что в этой строке равно нулю. Затем выясните, как это исправить.