2015-06-28 206 views
1

看來我無法從AppEngine上運行的Java類創建連接。從Google App Engine連接到雲端Bigtable

我使用下面的庫/依賴性:

<dependency> 
    <groupId>com.google.cloud.bigtable</groupId> 
    <artifactId>bigtable-hbase-1.1</artifactId> 
    <version>0.1.9</version> 
</dependency> 

和下面幾行代碼:

import org.apache.hadoop.hbase.client.ConnectionFactory; 
import org.apache.hadoop.hbase.*; 
Configuration conf = HBaseConfiguration.create(); 
connection = ConnectionFactory.createConnection(conf); 

看來,ConnectionFactory.createConnection()方法試圖使用受限制的類。

你能否幫助我們解釋我們如何在GAE上使用它?

Caused by: java.lang.NoClassDefFoundError: java.lang.management.ManagementFactory is a restricted class. Please see the Google App Engine developer's guide for more details. 
    at  com.google.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.java:52) 
     at org.apache.hadoop.util.ReflectionUtils.<clinit>(ReflectionUtils.java:137) 
     at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:191) 
    at com.google.appengine.tools.development.agent.runtime.RuntimeHelper.checkRestricted(RuntimeHelper.java:70) 
    at com.google.appengine.tools.development.agent.runtime.Runtime.checkRestricted(Runtime.java:65) 
    at org.apache.hadoop.hbase.security.UserProvider.instantiate(UserProvider.java:45) 
    at org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(ConnectionFactory.java:214) 
    at org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(ConnectionFactory.java:119) 
    at org.energyworx.datastore.BigTableTSStorage.<init>(BigTableTSStorage.java:104) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 
    at java.lang.Class.newInstance(Class.java:379) 
    at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:373) 
    ... 71 more 

回答

1

我已經更新了樣品上GitHub

我在devserver本地運行時出現以下錯誤。

+0

嗯,只需重新閱讀您的文章,看到您提到「只能在雲中運行」,我如何在本地運行它以進行開發?這還不支持?由於Jetty不支持GAE API,因此我們無法使用該API進行測試。 –

+1

最新的gcloud僅適用於谷歌環境,但遺憾的是,它尚未支持Bigtable用於性能的基於gRPC的API--這就是爲什麼我們需要一個定製運行時,這是我們基於標準的,但添加了alpn -boot。 可以將您的gcloud回滾到支持自定義w/GAE API本地調試的先前版本。 –

+0

沙盒GAE如何?我不認爲那個示例在那裏工作... – the1plummie

相關問題