サーブレット API 3.0 と AJAX を使用して Web アプリケーションを開発しています。(Eclipse で run-jetty-run を使用して) ローカルで開発およびテストしましたが、正常に動作しているようです。ただし、Tomcat7 インスタンスにデプロイすると、 へNullPointerException
の呼び出しから が取得されgetPart()
ます。
私のセットアップは次のとおりです。
@MultipartConfig
ミルサーブレットを実行しています(注釈はありません)。
私のdoPost()
では、ユーザーが何をしようとしているのかをサーブレットに伝え、次の一連のアクションを決定する「アクティビティ」パラメーターをチェックしています。multipart/form-data リクエストでは、これらがストリームの一部として存在することを理解しているので、それを抽象化するヘルパー メソッドを作成しました。つまり、パラメーターとして取得しようとし、見つからない場合はマルチパート リクエストであると見なし、getPart("activity")
その部分を取得するために呼び出し、その部分の InputStream から値を読み取ります。
現在、ローカルの RJR では、このコードを問題なく実行できます。サーブレットは、通常のリクエストとマルチパート リクエストの両方で「アクティビティ」パラメータを受け取ることができます。次に、Tomcat7 インスタンスにリモートでデプロイします。アプリケーションをテストした後、通常のリクエストは機能しますが、マルチパート リクエストが到着すると、呼び出し時にヌル ポインター例外がスローされます。req.getPart("activity").getInputStream();
私の質問の核心は、同じサーブレットで multipart/form-data と通常のリクエストの両方を適切に受信できるかどうかにかかっていると思います。
また、これは違いはありませんが、リモートでデプロイしてテストするときは、SSH トンネルを使用してトラフィックを tomcat インスタンスのポートにルーティングしています。