既存の動作中のJavaWebアプリケーションがあります。このアプリケーションをAndroidでネイティブにし、同じサーブレットを使い続けるつもりです。
サーバーと通信するAndroidアプリケーションを最後に実行したときは、サーブレットに次のようなものを配置していました。
PrintWriter out = response.getWriter();
out.print("pass");
そしてアンドロイドJavaクラスで私はこれをします:
String response = null;
try {
response = CustomHttpClient.executeHttpPost(
"http://10.0.2.2/ProjectName/" + "LoginServlet",postParameters);
String res = response.toString();
if(res.equals("pass")
{
/**do the things i want**/
}
}
catch(Exception e)
{
e.printStackTrace();
}
私のWebアプリケーションにあるサーブレットはHttpSessionを使用し、次のようなディスパッチメソッドを持っています。
HttpSession session = request.getSession();
session.setAttribute("user",user);
この:
dispatch(request, response, "/login.jsp");
Webアプリケーションが使用する既存のサーブレットにPrintWriterを追加しましたが失敗しました。そして、このエラーはlogcatで生成されました:
07-12 08:59:46.344: E/jdwp(487): >>> comparing 'jsp' to 'ers'
07-12 08:59:46.454: E/jdwp(487): >>> comparing 'jsp' to 'nfo'
07-12 08:59:46.524: E/jdwp(487): >>> comparing 'jsp' to 'o$1'
07-12 08:59:46.534: E/jdwp(487): >>> comparing 'jsp' to 'nfo'
07-12 08:59:46.534: E/jdwp(487): >>> comparing 'jsp' to 'o$1'
07-12 08:59:46.594: E/jdwp(487): >>> comparing 'jsp' to 'Key'
07-12 08:59:46.934: E/jdwp(487): >>> comparing 'jsp' to 'ver'
07-12 08:59:47.044: E/jdwp(487): >>> comparing 'jsp' to 'ile'
07-12 08:59:47.334: E/jdwp(487): >>> comparing 'jsp' to 'gin'
07-12 08:59:47.334: E/jdwp(487): >>> comparing 'jsp' to 'nfo'
07-12 08:59:47.354: E/jdwp(487): >>> comparing 'jsp' to 'ame'
07-12 08:59:47.404: E/jdwp(487): >>> comparing 'jsp' to 'ger'
07-12 08:59:47.404: E/jdwp(487): >>> comparing 'jsp' to 'eme'
07-12 08:59:47.504: E/jdwp(487): >>> comparing 'jsp' to 'ams'
そして比較のリストは続きます。
質問:何かが足りないのですか、それとも新しいサーブレットを作成するだけですか?(私は本当にそれが2番目のオプションではないことを願っています)
編集
エラーは、テキスト文字列だけでなくjspファイルへの応答を変更するdispatchメソッドによって生成されることがわかりました。dispatchメソッドをコメントアウトすると、androidを使用してサーバーに正常にログインできます。
ただし、AndroidアプリケーションとWebアプリケーションの両方が同じ単一のサーブレットを使用してログインできるように、ディスパッチ方法とPrintWriterを維持したいと思います。とにかく私はそれをすることができますか?