2013-05-16 68 views
2

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

我的设置如下:

我磨的servlet的运行(不具备@MultipartConfig注释)。

在我的doPost()中,我正在检查一个“activity”参数,它告诉servlet用户正在尝试做什么并确定下一个操作过程。我明白,在多部分/表单数据请求中,这些作为流的一部分存在,所以我写了一个辅助方法来抽象。简而言之,它试图把它作为一个参数,如果它没有找到它,就假定它是一个多部分请求,所以它调用getPart("activity")来获得该部分,并读取该部分的InputStream中的值。

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

我想我的问题的症结归结为是否可以正确接收多部分/表单数据以及同一个servlet中的普通请求。

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

回答

0

在预感上,我尝试添加@MultipartConfig注释,它的工作原理。这表明不同的servlet容器对注释的处理方式不同。