2014-05-01 11 views
7

Sto tentando di accedere a un bucket S3 dal motore di app di Google e ottengo un'eccezione relativa a una classe con restrizioni che tenta di inizializzare il client AmazonS3Client. Vedi codice ed eccezione qui sotto.Avvio di AmazonS3Client su GAE genera NoClassDefFoundError

Qualche idea su come farlo funzionare?

Codice:

AmazonS3 s3 = new AmazonS3Client(new ClasspathPropertiesFileCredentialsProvider()); 

Eccezione:

Caused by: java.lang.NoClassDefFoundError: javax.management.MBeanServerFactory 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 com.amazonaws.jmx.MBeans.getMBeanServer(MBeans.java:111) 
    at com.amazonaws.jmx.MBeans.registerMBean(MBeans.java:50) 
    at com.amazonaws.jmx.SdkMBeanRegistrySupport.registerMetricAdminMBean(SdkMBeanRegistrySupport.java:27) 
    at com.amazonaws.metrics.AwsSdkMetrics.registerMetricAdminMBean(AwsSdkMetrics.java:330) 
    at com.amazonaws.metrics.AwsSdkMetrics.<clinit>(AwsSdkMetrics.java:308) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:188) 
    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:64) 
    at com.amazonaws.services.s3.AmazonS3Client.<clinit>(AmazonS3Client.java:231) 
+0

Basta chiedersi se mai trovare il modo di aggirare questo? Ho incontrato lo stesso problema e riluttante a scrivere il mio S3Client a meno che non debba davvero ... –

risposta

2

L'errore hai incontrato significa che una classe utilizzata dal AWS SDK non è consentita all'interno di App Engine (per alcuni motivi oscuri).

Anche se si riesce a ignorare questo errore, non è possibile eseguire l'SDK AWS su GAE perché utilizza HttpClient e non URLFetch.

Per ulteriori informazioni si poteva leggere:

+0

Ciò ha portato alla ricerca di alcuni progetti che hanno portato l'SDK Java di Amazon su GAE. Esempio: https://github.com/apetresc/aws-sdk-for-java-on-gae, https://github.com/apcj/aws-sdk-for-java-on-gae. Grazie. Upvoted. –

Problemi correlati