これが単純な質問である場合は申し訳ありませんが、私は自分が何をすべきか理解できず、ここでは少し深みがないと思います。AndroidアプリケーションからGoogleAppEngineで実行されているアプリケーションにデータを送信したい。そこから、データをデータストアに書き込む必要があります。私のデータは主にオブジェクトの形式であり、Javaで作業しています。
私は次の質問に出くわしました:how-can-i-connect-a-google-app-engine-application-with-my-android
私はAndroid側で何が起こらなければならないかを理解していると思います。また、doPostメソッドがどのように機能し、何をするのかについても理解しています。しかし、私の問題はこれです。PersistenceManagerFactoryを使用して、このデータをデータストアに書き込んだり、取得したりするにはどうすればよいですか?つまり、そこでPersistenceManagerFactoryを使用したい場合、doPost内のコードはどのように見えますか?
基本的に、私のモバイルアプリケーションは、データの取得/書き込みに関して、AppEngineアプリケーションと同じように実行できる必要があります。
それとも、この方法を忘れて、何か別のことをする必要がありますか?
正しい方向へのポインタは大歓迎です!
編集:
以下に示すように、Samのソリューションの実装を開始しました。しかし、それでも何かが正しくありません。これが私が現在行っていることです:
GAEアプリのweb.xmlでサーブレットをマッピングします。
<servlet>
<servlet-name>this_servlet</servlet-name>
<servlet-class>*app-details*.server.JsonNews</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>this_servlet</servlet-name>
<url-pattern>/my_app/my_app_place</url-pattern>
</servlet-mapping>
doPost()メソッドの実装は、Samの実装と同じです。
私のAndroidアプリでは:
DefaultHttpClient hc=new DefaultHttpClient();
ResponseHandler <String> res=new BasicResponseHandler();
HttpPost postMethod=new HttpPost("http://my_application.appspot.com/my_app/my_app_place");
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("value1", "Value my user entered"));
postMethod.setEntity(new UrlEncodedFormEntity(nameValuePairs));
String response=hc.execute(postMethod,res);
ただし、hc.executeメソッドは失敗し、次のメッセージが表示されます。内部サーバーエラー
これにより、エラーはサーバー側にあるはずだと思いますが、どこで、なぜ問題が発生しているのかわかりません。サムのコードを正確にコピーし、「ニュース」などの必要なものだけを変更しました。