1

所以我試圖運行一個谷歌App引擎與Datastore本地進行測試和調試。當地的App引擎似乎可以自己工作,datastore仿真器也是如此。IllegalStateException與谷歌App Engine本地數據存儲

但只要我設置了datastore模擬器的環境變量,並重新啓動本地應用程序引擎,它與錯誤崩潰,

Caused by: java.lang.IllegalStateException: Must use project ID as app ID if project ID is provided. 

我已經把它貼在下面

一個更完整的堆棧跟蹤

從錯誤消息中,我懷疑我需要將項目ID改爲項目名稱。所以我嘗試用項目名稱替換項目ID的各種實例,我可以並且不幸這也不起作用。

命令我運行:

1. gcloud config set project PROJECT-ID 
2. export ENDPOINTS_SERVICE_NAME=name.endpoints.PROJECT-ID.cloud.goog 
3. gcloud beta emulators datastore start 
4. $(gcloud beta emulators datastore env-init) 
5. mvn appengine:run 

我已經把堆棧跟蹤上引擎收錄 https://pastebin.com/atcnYwrq

回答

0

如果別人失足掉進這個錯誤,我沒有固定的原始錯誤,但如果您改用Remote API,它似乎在RemoteCheck爲false時設置本地數據存儲。

如果您使用的客體,那麼你將需要使用Remotely,設置了CustomFactory和登記,並確保你有這樣的事情在你的web.xml以下

<filter-mapping> 
    <filter-name>ObjectifyFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
    <dispatcher>REQUEST</dispatcher> 
    <dispatcher>INCLUDE</dispatcher> 
    <dispatcher>FORWARD</dispatcher> 
</filter-mapping> 
<listener> 
    <listener-class>com.packagename.OfyHelper</listener-class> 
</listener> 
2

我偶然失足成解決這個問題的方法。

export DATASTORE_USE_PROJECT_ID_AS_APP_ID=true 
+0

不適合我:( –

相關問題