English 中文(简体)
阿帕奇共同财产案 java servlet重载问题
原标题:
  • 时间:2009-06-05 12:27:25
  •  标签:

我试图与阿帕奇科斯·佛隆上载一道这样做:

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException {

    PrintWriter out = null;

    try {

        response.setContentType("text/html;charset=UTF-8");
        //MultipartFormDataRequest dataRequest = new MultipartFormDataRequest(request);
        //get uploaded files
        FileItemFactory factory = new DiskFileItemFactory();
        // Create a new file upload handler
        ServletFileUpload upload = new ServletFileUpload(factory);
        List files = null;
        try {
            files = upload.parseRequest(request);
        } catch (FileUploadException ex) {
            Logger.getLogger(ProcessUploadItem.class.getName()).log(Level.SEVERE, null, ex);
    }
}

编号:files = 上载。

是否有任何要点?

ry和感谢:

职业经历

The log message is null.
java.lang.NullPointerException
    at web.ProcessUploadItem.processRequest(ProcessUploadItem.java:156)
    at web.ProcessUploadItem.doPost(ProcessUploadItem.java:193)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:738)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
    at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:290)
    at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
    at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
    at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:272)
    at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
    at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)
    at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)
    at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
    at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
    at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
    at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
    at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
java.lang.NullPointerException
    at web.ProcessUploadItem.processRequest(ProcessUploadItem.java:156)
    at web.ProcessUploadItem.doPost(ProcessUploadItem.java:193)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:738)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
    at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:290)
    at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
    at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
    at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:272)
    at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
    at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)
    at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)
    at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
    at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
    at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
    at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
    at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)

I m 使用玻璃

谢谢。

最佳回答

从中可以看出,你在位第156行上引述的项目之一是无效的。 虽然我们在提供的单体内没有线号码,但我们认为,这在<代码>upload.parseRequest行文上是完全可能的(你也认为是失败的部分)。

奇怪的是,只有当<代码>upload<>/code>无效时,才会出现这样的情况,但是,从你给出的法典来看,这似乎是不可能的,因为从建筑商只分配了几条线的非致命价值,而且现在从那时起就发生了变化。

如果你可以 attach笑,那么通过你的手法和检查物体价值就是一个好的想法。 否则,在这一点之前就应当作几处打印说明,以核实哪些物体无效,哪些是非核物品。

问题回答

通告<代码> 日志信息为“,表示正在抱怨如下:

log(Level.SEVERE, null, ex);

更好地利用:

log(Level.SEVERE, "Failed to parse upload request", ex);

请注意,<代码>upload此时此刻在某种程度上无效。 您是否确信,你提供的来文方和汇编的班级档案是相同的版本(例如,错误线指不同的指示)?

我猜测,你可以用国际民主和选举援助学会贬低你的申请,为Null PointerException设定一个突破点。

Update: Could you please show what is after the inner catch block? What do you do with list? I guess you forgot that list might remain null if there is no file uploaded and you just start to iterate over it?

我怀疑,伐木者正在投掷Null PointerException,因为shock。 “日志信息无效”。

Logger.getLogger(...).log(Level.SEVERE, >>>null<<<, ex);

Log4J的一名操作员(玻璃鱼一)正在处理无名电文,并印刷“日志信息无效”,但其他一些Log4J手持单人也是处理这种情况和投掷Null PointerException的。

这可以解释,为什么你的 st痕是关于Null PointerException的,而不是关于你正在追捕的“文件上流”。 我可以解释,为什么努埃切韦拉角的顶端是你的代码(ProcessUploadItem.java:156),而只有靠可浏览的代码,有时可以ool。

不管怎样,我认为问题的关键是,一旦Null PointerException触发点发生,FileUploadException ex就立即消失了,因此,对于导致你进入集水区的原因,没有任何欺骗。

向记录和(或)文件上存取一个适当的记录信息,以打印其信息和跟踪,进一步开展工作。

First - paste more!

你ve的yn子是无效的。 你们有一只 d子,没有渔获,或者最后是...... 我在此重复了更多的信息...... 沿用整个方法,对第156条作出评论,以表明它是什么。

What does the NPE mean?

正如其他人提到的那样,在你的方法中, st是一纸空文。 您试图在(使用<代码>的委员变量或方法的操作者)上查阅某件物品,其中一件一律无效。 我们可以从你的 trace光中推断出这一点,但你所遵循的法典是什么意思。 我们需要做更多的工作,帮助说明这一点。

Write a unit test to figure out the API calls

另外,我还要写一份unit 测试<>>,以了解如何在介绍保护伞和伐木标书的复杂性之前与这一意向书合作。

查阅https://github.com/apache/commons-fileupload” rel=“nofollow noreferer” 。 您可重新使用。 (尽管这确实是用于类似测试的fake物体,而不是mock物体)。

注:您不妨浏览并查阅与您文件上载jar版本相对应的这些文件。

Debugging pointers

To:

我打破了你 st头顶上的方法的第一线,并在我通过这种方法时审视当地观察变量。 一旦发现并删除了,就附上文件上载源,并逐步进入该代码,以确保如果你真的会在此之后获得不同的文件上载特例。

亲爱!

问题是不完整的。

Which version of commons-upload are you using? Your form is using multipart/form-data MIME type as encoding type?

例如:

<form action="/uploadServlet" enctype="multipart/form-data" method="post">
  <input type="file" name="file" size="40">
  <input type="submit" value="Send">
</form>

阅读<代码>文件时 DiskFileItemFactory 我注意到,当一个档案上载时,该档案暂时保存在该系统的某个地方,而该表的缺省目录则通过<代码>System.getProperty(“java.io.tmpdir”)归还。 您是否同意写这本名录,如果可能的话,请打电话 Factory.set 保存人(java.io)。 文件

这并不肯定会有所助益,而只是建议。

Ei> >,。 页: 1

如果程序要求实际上接近上载即时,我的猜测就是你有某种后处理。 你正在编辑的法典可能不是你重新编纂的法典。

您在说话时需要具体说明更多信息,在文件上失败=上载。 我在回答你的问题时要说几句。

查看javadoc,您正在创建一个未初始化的DiskFileItemFactory对象。您需要指定要存储文件的目录。要么调用setRepository(),要么通过调用DiskFileItemFactory(int,File)来创建您的工厂。





相关问题