2016-01-23 68 views
2

我使用Google App Engine連接到Firebase,但它引發異常。我下面在提到的步驟:訪問控制異常:在GoogleAppEngine中使用Firebase時訪問被拒絕(「java.lang.RuntimePermission」「modifyThreadGroup」)

https://cloud.google.com/solutions/mobile/firebase-app-engine-android-studio

雖然引用進行了更新有庫,所以我跑的依賴關係的新版本:

/** libraries for using firebase on the GoogleAppEngine */ 
    compile 'com.google.appengine:appengine-api-1.0-sdk:1.9.31' 
    compile 'com.firebase:firebase-client-jvm:2.5.0' 
    compile 'org.apache.httpcomponents:httpclient:4.3.5' 

此外,而不是創建App Engine Java Servlet Module的我創建了App Engine Backend with Google Cloud Messaging,因爲它更容易添加GCM功能,並且我已經手動創建了該servlet(請注意,Servlet在沒有Firebase聲明的情況下工作正常)

的AppEngine-web.xml中

<?xml version="1.0" encoding="utf-8"?> 
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0"> 
    <application>GOOGLE_CONSOLE_PROJECT_ID</application> 
    <version>1</version> 
    <threadsafe>true</threadsafe> 
    <manual-scaling> 
     <instances>1</instances> 
    </manual-scaling> 

    <system-properties> 
     <property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/> 
    <property name="gcm.api.key" value="YOUR_KEY_HERE"/> 
    </system-properties> 
</appengine-web-app> 

它崩潰,當我創建火力地堡參考:

final Firebase usersLocation = new Firebase(Constants.FIREBASE_URL_USERS); 

例外:

java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "modifyThreadGroup") 
     at java.security.AccessControlContext.checkPermission(AccessControlContext.java:382) 
     at java.security.AccessController.checkPermission(AccessController.java:572) 
     at java.lang.SecurityManager.checkPermission(SecurityManager.java:549) 
     at com.google.apphosting.runtime.security.CustomSecurityManager.checkPermission(CustomSecurityManager.java:55) 
     at com.google.apphosting.runtime.security.CustomSecurityManager.checkAccess(CustomSecurityManager.java:136) 
     at java.lang.ThreadGroup.checkAccess(ThreadGroup.java:315) 
     at java.lang.Thread.init(Thread.java:391) 
     at java.lang.Thread.init(Thread.java:349) 
     at java.lang.Thread.<init>(Thread.java:675) 

回答

2

它開始工作時,我改變了版本對於appengine-api-1.0-sdk1.9.311.9.26

UPDATE

1.9.31嘗試過了,我看到它是工作的罰款與這一點。我不確定它爲什麼在第一次嘗試時不工作。

我保持這個線程打開,以便它可以幫助其他人面臨類似的問題。

+1

Google/Firebase工程師在這裏。感謝更新。我們正在調查造成這種情況的原因。您可以聯繫[email protected]嗎? –

+0

@FrankvanPuffelen謝謝。你想讓我通過電子郵件發送什麼? –

+0

主要是爲了讓我們可以直接聯繫您,以防我們需要更多信息。如果你更願意留在這裏也很好。 –

2

難道你沒有部署版本31? 我可以成功運行對AppEngine上-API 1.0 SDK 31年9月1日:

compile 'com.google.appengine:appengine-api-1.0-sdk:1.9.31' 
compile 'com.firebase:firebase-client-jvm:2.5.0' 
compile 'org.apache.httpcomponents:httpclient:4.5.1' 

你肯定描述了當火力點無法檢測ThreadManager(這可能是由於API的變化或不引起發生什麼症狀部署)。但我無法在我的最後重現問題,並且我已驗證api從26 - > 31沒有變化。

+0

GCM樣本可能會阻止1.9.31加載? –

+0

謝謝@Benjamin,它也可以很好的使用'1.9.31'。 –

相關問題