2014-10-03 1 views
0

우리는 SMS를 보내기 위해 Plivo (SMS, 전화 호출 플랫폼)을 사용하는 Goole App Engine 자바 프로젝트를 가지고 있습니다. SMS를 보내려면 Plivo Java Library을 사용하십시오. 나는 SMS를 보내려고 할 때, 나는 NoClassDefFoundError 예외NoClassDefFoundError : javax.naming.ldap.LdapName은 GAE의 제한된 클래스입니다.

java.lang.NoClassDefFoundError: javax.naming.ldap.LdapName 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:51) 
    at org.apache.http.conn.ssl.AbstractVerifier.extractCNs(AbstractVerifier.java:277) 
    at org.apache.http.conn.ssl.AbstractVerifier.getCNs(AbstractVerifier.java:265) 
    at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:157) 
    at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:140) 
    at org.apache.http.conn.ssl.SSLSocketFactory.verifyHostname(SSLSocketFactory.java:561) 
    at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:536) 
    at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:403) 
    at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:177) 
    at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:304) 
    at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:611) 
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:446) 
    at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:863) 
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82) 
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:106) 
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:57) 
    at com.plivo.helper.api.client.RestAPI.request(RestAPI.java:106) 

내가 어떻게이 문제를 해결합니까있어?

+0

https://cloud.google.com/appengine/docs/java/sms/twilio – dyoo

답변

1

App Engine은 샌드 박스 환경에서 실행되므로 특정 클래스를 사용할 수 없습니다. whitelist 페이지에서 어떤 수업을 사용할 수 있는지 알려줍니다.

이 특정 타사 라이브러리를 사용해야하는 경우 Compute Engine에서 관련 앱을 실행하거나 Managed VMs을 보거나 일반 Java와 동일한 제한을 두지 않습니다. 모듈을 App Engine에 저장합니다. 단점은 동일한 자동 크기 조정 특성을 즐기지 않으며 관리되는 VM이 ​​여전히 미리보기 상태라는 것입니다.

+0

plivo 자바 라이브러리를 검사 할 때 아무 것도 LDAP 패키지에 의존하지 않습니다. 제 3 자 라이브러리가 왜 그렇게됩니까? –

+0

라이브러리는 호출 스택에서 참조하는 Apache HTTP 라이브러리에 의존하며,이 스택은 LdapName에 의존합니다 ([here] (http://mail-archives.apache.org/mod_mbox/hc-commits/201407.mbox 참조) /%[email protected]%3E) 예). – tx802

+0

오케이. 지금 나는 이해했다. –