2013-05-16 106 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容器對註釋的處理方式不同。