我有我有一個問題,我完成了樣品GCM消息(https://github.com/GoogleCloudPlatform/gradle-appengine-templates/tree/master/GcmEndpoints)添加參數雲端點導致404 GoogleJsonResponseException
,直到我想其他參數在該RegistrationEndpoint
添加到registerDevice
方法,一切工作正常類。我確信我之前添加了@Named
。
的變化之前,它看起來是這樣的:
@ApiMethod(name = "register")
public void registerDevice(@Named("regId") String regId) {
if (findRecord(regId) != null) {
log.info("Device " + regId + " already registered, skipping register");
return;
}
RegistrationRecord record = new RegistrationRecord();
record.setRegId(regId);
//record.setUserName(name);
//record.setUserProfId(profId);
ofy().save().entity(record).now();
}
後變它看起來像這樣:
@ApiMethod(name = "register")
public void registerDevice(@Named("regId") String regId, @Named("name") String name, @Named("profId") String profId) {
if (findRecord(regId) != null) {
log.info("Device " + regId + " already registered, skipping register");
return;
}
RegistrationRecord record = new RegistrationRecord();
record.setRegId(regId);
record.setUserName(name);
record.setUserProfId(profId);
ofy().save().entity(record).now();
}
一旦我加入這兩個參數,將GCM請求失敗,出現以下錯誤:
com.google.api.client.googleapis.json.GoogleJsonResponseException: 404 Not Found
在我的代碼的這一行(在AsyncTask
)
regService.register(Globals.REG_ID,"Test","Test").execute();
但是,當它的「測試」,「測試」被刪除像原來的教程,它工作正常!
結論,當我添加自己的參數與我想要的字段時,我無法發佈到數據存儲。有什麼建議麼?
好吧!我是否應該將EndPoint方法中的順序更改爲字母順序?我會試一試 –
不,你不需要。但生成的方法按字母順序排列參數,所以如果您有3個字符串(或相同類型的參數),您應該知道這一點。 – tomrozb
愚蠢的問題,但你如何將新版本上傳到App Engine?我在API標記頭中將版本更改爲v2,並且我在本地運行了後端,並且它可以正常工作......並且我在移動設備上運行了應用程序代碼,並且錯誤仍在發生。如果我檢查api-explorer,它仍會在我的appspot網站上顯示v1。我覺得在開發控制檯的某個地方,你選擇v2但我找不到它! –