2011-01-14 5 views
0

J'essaie d'utiliser Amazon AWS dans une application Web Java, s'exécutant dans apache tomcat. quand je cours mon application, il échoue avec,Amazon AWS dans l'application Web, InstantiationError: com.amazonaws.handlers.b

java.lang.InstantiationError: com.amazonaws.handlers.b 
    com.amazonaws.services.s3.AmazonS3Client.<init>(Unknown Source) 
    com.amazonaws.services.s3.AmazonS3Client.<init>(Unknown Source) 
    org.test.msync.photoweb.PhotoWebServlet.processRequest(PhotoWebServlet.java:47) 
    org.test.msync.photoweb.PhotoWebServlet.doGet(PhotoWebServlet.java:104) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:617) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 

des idées?

En regardant le code pour AmazonS3Client, il semble essayer de charger une ressource nommée "request.handlers", qui n'existe pas dans le fichier SDK jar ... et je ne trouve aucune référence ailleurs.

edit: correction, request.handlers est dans le fichier JAR, mais la version sous S3 est vide. aucune idée d'où vient le "b".

éditer: enlever l'étiquette de tomcat, comme j'ai essayé sur glassfish avec le même résultat. notez que cela fonctionne dans une java SE env.

+0

il devrait y avoir plus de sortie. peut-être un peu "causé par"? – davogotland

+0

l'exception signalée est la cause principale. rien de plus dans aucun des journaux. –

Répondre

-1

i éteint « antiLockingJARs » dans context.xml et le problème a disparu.

If true, the Tomcat classloader will take extra measures to avoid JAR file locking when resources are accessed inside JARs through URLs. This will impact startup time of applications, but could prove to be useful on platforms or configurations where file locking can occur. If not specified, the default value is false.

Je ne peux pas expliquer pourquoi le fichier AWS jar a rencontré des problèmes avec ce paramètre. il a été défini sur true par défaut lorsque j'ai créé un nouveau projet d'application Web via netbeans (6.9.1).

-1

le fait qu'il fonctionne dans un environnement java se devrait nous dire que c'est un problème de chemin de classe. ce qui signifie que l'erreur provient d'une classe manquante sur le chemin de la classe, probablement une classe nommée b. Comment avez-vous déployé votre Tomcat? Comment avez-vous exécuté la version en Java qui a fonctionné? à travers l'éclipse? courez-vous Tomcat à travers Eclipse aussi bien? Je devine qu'il manque un fichier jar sur le chemin de la classe tomcat. mettre le jar-fichier manquant dans le dossier où tomcat exécute l'application, sous WEB-INF/lib, devrait résoudre ce problème. où ce dossier est dépend un peu de votre installation si.

si cela ne fonctionne pas, alors s'il vous plaît donner plus d'informations sur votre configuration, à la fois pour l'exécution et tomcat java se :)