500错误:在编码中创建的HTML未在servlet中下载

时间:2014-01-03 14:50:56

标签: java tomcat servlets

我编写了一个Web应用程序,它通过Web表单从用户那里获取输入,并根据该输入更改特定的html文件并创建一个新文件并将其保存在动态Web项目的webContent文件夹中。我有一个示例。 txt文件也放入该文件夹,但它没有在代码中创建它的东西用于测试。它根据需要下载,但创建的HTML文件在读取代码中的字节时出现500错误,Null指针异常。 摘录如下

String filepath = "/Users/schhatre13/Documents/workspace/CustomHTMLTool/WebContent/"+"customHTML.html";
        File downloadedFile = new File(filepath);
        BufferedWriter bw = new BufferedWriter(new FileWriter(downloadedFile));
        bw.write(html);
        bw.close();

        response.setContentType("text/html");
        response.setHeader("Content-Disposition",
                         "attachment;filename=customHTML"+new Date()+".html");
        ServletContext ctx = getServletContext();
        InputStream is = ctx.getResourceAsStream("/customHTML.html");
        int read=0;
        //i++;

        byte[] bytes = new byte[BYTES_DOWNLOAD];
        OutputStream os = response.getOutputStream();

        while((read = is.read(bytes))!= -1){
            os.write(bytes, 0, read);
        }
        os.flush();
        os.close(); 

引发的错误是500内部服务器错误。

java.lang.NullPointerException
    HTMLCustomizer.doGet(HTMLCustomizer.java:160)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:723)

这是

while((read = is.read(bytes))!= -1){

即Null指针异常。我不明白这个问题,因为我手动放置的.txt文件会根据需要下载。

由于 斯瓦拉杰

1 个答案:

答案 0 :(得分:0)

什么是null? is?如果是这样,这可能意味着您没有正确加载文件。请注意,Web内容目录可能与您期望的不同,并且某些服务器在启动时复制webapp文件夹。我建议尽可能相对地编写和读取文件,或者使用某种编程方式来确定web目录的文件路径。