私はGoogleCloudMessagingをEclipseで動作させることを試みてきました。私は彼らのデモウェブページで与えられた例をコンパイルし、エラーなしでそれを実行することができました。ただし、ジャージを使用して独自の例を作成しようとすると、次のコードで送信者を作成しようとすると、実行時エラー「java.lang.NoClassDefFoundError:com / google / android / gcm / server/Sender」が発生します。
@POST
@Path("/send")
public Response sendMessage() throws IOException
{
Sender sender = new Sender("api_key");
Message message = new Message.Builder().build();
sender.send(message, DataStore.getDevices(), 5);
return Response.status(200).entity("Success").build();
}
注:実際のAPIキーをapi_keyに置き換えました。チュートリアルで説明されているantコマンドを実行することでデモを機能させることができたので、機能することはわかっています。また、あいまいな場合に備えて、私が得ているエラーはサーバー側であり、Androidデバイスとは何の関係もありません。
私がすでに試したこと:
- gcm-server.jarをWEB-INF/libフォルダーに含め、プロジェクトのプロパティの下でビルドパスに含めました。
- また、他のサイトで言及されているように、gcm-server.jarを含めたのと同じ方法でjson_simple-1.1.jarを含めようとしました。これがこのエラーにどのように影響するかはわかりませんが、いくつかの異なる場所でこれが回答としてリストされているのを見ました。
- (解決策) Tomcatサーバーを削除し、新しいサーバーを作成しました。代わりにプロジェクトをクリーンアップしただけで、同じ結果が得られた可能性があります。
デモチュートリアルリンク:http ://developer.android.com/guide/google/gcm/demo.html 。