私のApp Engine/GWTプロジェクトは、ログインメソッドから戻るときにスタックトレースの厄介な小さな束を吐き出しています。私はGAEバージョン1.5.0とGWTバージョン2.3.0を使用しています。クライアントのエラー(null引数のメソッド 'nullMethod'を呼び出せません:nullMethod)
これは、Facebookアプリですので、私が持っていることはこれです:
- プレイヤーは、アプリのページに移動します。
- 彼らは、ボタンをクリックして、私はUIDを取得するために離れてクエリ文字列を破る
- クエリ文字列での認証トークンと、彼らはその後、アプリに戻ってリダイレクトされ
- OAuth認証ページにリダイレクトされていますそれをPlayerエンティティ(RPCからアプリケーションエンジンへのバックエンド)のプライマリキーとして使用する
- データストアからPlayerエンティティインスタンスを取得し、それをシリアライズ可能な型に変換してクライアントに返します。
- エピックが失敗します。
私はJSAlertで例外を吐き出すときに、私は(私はすでに「かわいい」の代わりに「難読化」を使用してコンパイルするのに十分な思いやりだった)スタックトレースの大きな厄介な山を取得します。
が@Override
public ClientPlayer login(String uid) {
PersistenceManager pm=PMF.get().getPersistenceManager();
log.warning(Player.class.getName());
log.warning(uid);
Key k=KeyFactory.createKey(Player.class.getSimpleName(), uid);
Player p;
List<List<Integer>> stats;
try{
p=pm.getObjectById(Player.class, k);
} catch (JDOObjectNotFoundException e){
p=new Player(uid);
p.setKey(k);
pm.makePersistent(p);
} finally {
pm.close();
}
stats=p.getStats();
return new ClientPlayer(p.getUID(),p.getPerm(), p.getDecks(),stats.get(0), stats.get(1), stats.get(2));
}
残念ながら、NDAのために、私はアプリにリンクすることはできませんが、ここでは出力です:
私のログイン機能は、次のようになります
Failure to log in because of:
com.google.gwt.core.client.JavaScriptException: (TypeError): Cannot call method 'nullMethod' of null
arguments: nullMethod,
type: non_object_property_call
stack: TypeError: Cannot call method 'nullMethod' of null
at Object.ClientPlayer_1 (http://*.com/com.MES.Tap2/A37A2E2E9A65DB1BAAE2BFA42572F7F8.cache.html:993:89)
at Object.ClientPlayer_0 (http://*com/com.MES.Tap2/A37A2E2E9A65DB1BAAE2BFA42572F7F8.cache.html:984:18)
at Array.instantiate_1 [as 0] (http://*.com/com.MES.Tap2/A37A2E2E9A65DB1BAAE2BFA42572F7F8.cache.html:1031:10)
at $instantiate_0 (http://*.com/com.MES.Tap2/A37A2E2E9A65DB1BAAE2BFA42572F7F8.cache.html:10660:34)
at $instantiate (http://*.com/com.MES.Tap2/A37A2E2E9A65DB1BAAE2BFA42572F7F8.cache.html:1948:10)
at $readObject (http://*.com/com.MES.Tap2/A37A2E2E9A65DB1BAAE2BFA42572F7F8.cache.html:10148:95)
at Object.read_8 [as read] (http://*.com/com.MES.Tap2/A37A2E2E9A65DB1BAAE2BFA42572F7F8.cache.html:10608:10)
at $onResponseReceived (http://*.com/com.MES.Tap2/A37A2E2E9A65DB1BAAE2BFA42572F7F8.cache.html:10352:247)
at $fireOnResponseReceived (http://*.com/com.MES.Tap2/A37A2E2E9A65DB1BAAE2BFA42572F7F8.cache.html:5002:5)
at Object.onReadyStateChange (http:/*.com/com.MES.Tap2/A37A2E2E9A65DB1BAAE2BFA42572F7F8.cache.html:5222:5)