2016-01-23 149 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'。 –

相关问题