2014-12-14 12 views
1

Google Compute Engine에 설치된 Aerospike에 GAE 애플리케이션을 연결하려고합니다. 아래의 코드 스 니펫은 main 함수를 사용하면 괜찮습니다.Google App Engine이 Google Compute Engine에 Aerospike를 연결하지 못했습니다.

public static void main(String[] args) { 
     AerospikeClient client = new AerospikeClient("xxx.xxx.xx.xx", 3000); 
     boolean isConnect = client.isConnected();  
     Key key = new Key("test", "demo", "putgetkey"); 
     Bin bin1 = new Bin("bin1", "value1"); 
     Bin bin2 = new Bin("bin2", "value2");  
     client.put(null, key, bin1, bin2); 
     Record record = client.get(null, key); 
     client.close(); 
    } 

하지만 내 응용 프로그램을 GAE에 배포하면이 오류가 발생합니다.

java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "modifyThreadGroup") 
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:372) 
    at java.security.AccessController.checkPermission(AccessController.java:559) 
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:549) 
    at com.google.appengine.tools.development.DevAppServerFactory$CustomSecurityManager.checkPermission(DevAppServerFactory.java:429) 
    at com.google.appengine.tools.development.DevAppServerFactory$CustomSecurityManager.checkAccess(DevAppServerFactory.java:454) 
    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:461) 
    at com.aerospike.client.cluster.Cluster.initTendThread(Cluster.java:163) 
    at com.aerospike.client.AerospikeClient.<init>(AerospikeClient.java:195) 
    at com.aerospike.client.AerospikeClient.<init>(AerospikeClient.java:160) 

나는 ("compute_engine_ip", 3000)하지만 같은 오류가 새 AerospikeClient을 만들 수 계산 엔진 인스턴스의 외부 및 내부 IP를 사용했다. 내 문제를 해결할 수있는 아이디어가 있습니까? 고맙습니다.

답변

1

GAE는 프런트 엔드 인스턴스 (GAE 인스턴스)가 스레드를 생성하도록 허용하지 않으므로 액세스 제어 예외가 발생합니다.

GCE 시스템에서 Aerospike 클라이언트를 실행 한 다음 GAE 응용 프로그램을 사용하여 GAE에서 Aerospike 클라이언트를 실행하는 대신 GCE 시스템에 연결해야합니다.