ローカルの App Engine を使用しており、エンドポイントが動作していますが、次の API を追加すると、API Explorer ( https://developers.google.com/apis-explorer/?base=http://localhost: 8888/_ah/api#p/ ) は、JavaScript コンソールに未処理の例外がある間は読み込まれません。
@ApiMethod(name = "getClientByPublicId")
public Client getClientByPublicId(@Named("publicId") String publicId) {
EntityManager mgr = getEntityManager();
Client client = null;
client = mgr.find(Client.class, publicId);
mgr.close();
return client;
}
Chrome JavaScript コンソール内では、最小化されているため、何も役に立ちません。
Uncaught java.lang.NullPointerException
(anonymous function)
(anonymous function)
h
(anonymous function)
F.(anonymous function).z.(anonymous function).z.(anonymous function)
_.T.K.__cb
h
c
API Explorer ページ全体が空白になります。
これをデバッグ モードで実行し、追加した API 内にブレークポイントを設定しましたが、トリガーされません。
で検出ドキュメントをロードするhttp://localhost:8888/_ah/api/discovery/v1/apis/clientendpoint/v1/rest
と、次の応答で失敗します。
{
"error" : {
"message" : ""
}
}
この新しい API を削除すると、新しい API がなくてもすべて正常に動作します。
誰がこれを引き起こしているのか知っていますか?
アップデート
Google APIs Explorer がアプリ エンジン アプリから利用可能な ApiMethod を見つけられなかったことに遭遇しました。パスの衝突が発生しているように思えますが、まだ理解していませんが、今このアイデアに取り組もうとしています。 .
これが問題である可能性がある場合、関連する API は次のとおりです。
@ApiMethod(name = "getClient")
public Client getClient(@Named("id") Long id) {
EntityManager mgr = getEntityManager();
Client client = null;
try {
client = mgr.find(Client.class, id);
} finally {
mgr.close();
}
return client;
}
誰かが違うことを知らない限り、私はこれを試して私の質問に答えます。