2016-05-21 5 views
0

кажется, что последний SDK com.google.firebase:firebase-server-sdk:3.0.0 зависит от создания потоков для большинства вызовов, например, com.google.firebase.database.FirebaseDatabase.getReferenceFirebase доступ в GAE

Это проблема при использовании GAE, так как он быстро генерирует исключение: servlet java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "modifyThreadGroup")

Are мы попробовали использовать JVM sdk (com.firebase:firebase-client-jvm) вместо этого?

Инструкции не настолько ясны, и кажется, что унаследованный веб-сайт является единственным, где мы можем получить секрет. Новый веб-сайт дает нам файл .json.

Кто-нибудь имел успех в использовании новой версии v3 с GAE?

ответ

-2

Включите файл JSON в «Файлы ресурсов» appengine-web.xml. Пример:

<resource-files> 
    <include path="/**.xml" /> 
    <exclude path="/feeds/**.xml" /> 
</resource-files> 

См ссылку https://cloud.google.com/appengine/docs/java/config/appref#resource_files. «Файлы, перечисленные в элементе, доступны с помощью кода приложения с использованием файловой системы. Эти файлы хранятся на серверах приложений с приложением, а не как статические файлы хранятся и обслуживаются».

+0

Просьба включить соответствующий код/​​образец по ссылке, на которую делается ссылка в ответе. Внешние ссылки могут стать недействительными по линии, и в то время этот ответ станет неуместным. Пожалуйста, постарайтесь предоставить как можно больше объяснений в исходном ответе, а также ссылку внизу в качестве ссылки. – techspider

+0

Не отвечает на вопросы о потоках – runor49

0

Да. Просто проверено.

Как и в случае с 2.x SDK, вы можете обойти ограничение потока с помощью ручного масштабирования.

Хотя руководство Cloud по использованию Firebase с GAE немного устарело, раздел на manual scaling должен по-прежнему быть полезен, чтобы помочь вам в этом.

Подробнее о ThreadManager here.

+0

Это не сработало. Я получаю следующую ошибку, когда я устанавливаю ручное масштабирование в 1: java.security.AccessControlException: доступ запрещен («java.lang.RuntimePermission» «modifyThreadGroup») в com.google.firebase.database.utilities.DefaultRunLoop $ FirebaseThreadFactory.newThread (DefaultRunLoop.java:13) at com.google.firebase.database.connection.PersistentConnectionImpl.doIdleCheck (PersistentConnectionImpl.java:1098) at com.google.firebase.database.connection.PersistentConnectionImpl. (PersistentConnectionImpl.java:266) – runor49

+0

Это звучит как отличный вопрос о переполнении стека! – Kato

0

Я столкнулся с той же проблемой и обнаружил причину в этом blog thread.

При добавлении зависимостей, я включил appengine-java-sdk, но упустил appengine-api-1.0-sdk. Добавление этого исключения исключает исключение. Полный блок зависимостей:

dependencies { 
    appengineSdk 'com.google.appengine:appengine-java-sdk:1.9.48' 
    compile 'javax.servlet:servlet-api:2.5' 
    compile 'com.google.firebase:firebase-server-sdk:3.0.3' 
    compile 'com.google.appengine:appengine-api-1.0-sdk:1.9.48' 
} 
Смежные вопросы