【问题标题】:Using a servlet to handle both multipart and normal requests使用 servlet 处理多部分和普通请求
【发布时间】:2013-05-16 17:48:46
【问题描述】:

我正在使用 servlet API 3.0 和 AJAX 开发一个 Web 应用程序。我已经在本地开发和测试(在 Eclipse 中使用 run-jetty-run),它似乎工作正常。但是,当我部署到我的 Tomcat7 实例时,我从对 getPart() 的调用中获得了 NullPointerException

我的设置如下:

我运行了一个mill servlet(没有@MultipartConfig 注释)。

在我的doPost() 中,我正在检查一个“活动”参数,该参数告诉 servlet 用户试图做什么并确定下一步行动。我知道在 multipart/form-data 请求中,这些请求作为流的一部分存在,所以我编写了一个辅助方法来抽象它。简而言之,它会尝试将其作为参数获取,如果找不到,则假定它是一个多部分请求,因此它调用getPart("activity") 来获取该部分,并从该部分的 InputStream 中读取该值。

现在,在 RJR 本地,执行此代码没有问题。 servlet 能够在正常请求和多部分请求中接收“活动”参数。然后我远程部署到 Tomcat7 实例。测试应用后,正常请求正常,但是当多部分请求到达时,我调用req.getPart("activity").getInputStream();时会抛出空指针异常

我想我的问题的症结归结为是否可以在同一个 servlet 中正确接收 multipart/form-data 以及正常请求。

另外,这应该没什么区别,但是当我远程部署和测试时,我使用 SSH 隧道将流量路由到 tomcat 实例的端口。

【问题讨论】:

    标签: java servlets parameters tomcat7 multipartform-data


    【解决方案1】:

    凭直觉,我尝试在其中添加@MultipartConfig 注释,它可以工作。这表明不同的 servlet 容器对注解的处理方式不同。

    【讨论】:

      猜你喜欢
      • 2015-09-03
      • 1970-01-01
      • 2011-12-26
      • 1970-01-01
      • 1970-01-01
      • 2012-04-02
      • 1970-01-01
      • 2016-01-29
      • 2023-03-18
      相关资源
      最近更新 更多