Amazon AWS в веб-приложении, ошибка Instantiation: com.amazonaws.handlers.b - PullRequest
0 голосов
/ 14 января 2011

Я пытаюсь использовать Amazon AWS в веб-приложении Java, работающем в Apache Tomcat. когда я запускаю свое приложение, оно перестает работать,

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)

есть идеи?

Глядя на код AmazonS3Client, он пытается загрузить ресурс с именем «request.handlers», которого нет в банке SDK ... и я не могу найти ссылку на него где-либо еще. *

edit: коррекция, request.handlers находится в JAR, но версия под S3 пуста. не знаю, откуда взялась буква "b".

edit: удаление тега tomcat, как я попробовал на glassfish с тем же результатом. обратите внимание, что он работает в java SE env.

Ответы [ 2 ]

0 голосов
/ 17 января 2011

Я отключил «antiLockingJARs» в Context.xml, и проблема исчезла.

Если значение равно true, загрузчик классов Tomcat примет дополнительные меры, чтобы избежать блокировки файлов JAR, когда ресурсы доступны внутри JAR черезURL-адрес.Это повлияет на время запуска приложений, но может оказаться полезным на платформах или конфигурациях, где может происходить блокировка файлов.Если не указано иное, по умолчанию установлено значение false.

Я не могу объяснить, почему в банке AWS возникли проблемы с этим параметром.по умолчанию оно было установлено в true при создании нового проекта веб-приложения через netbeans (6.9.1).

0 голосов
/ 15 января 2011

тот факт, что он работает в среде Java, должен сказать нам, что это проблема пути к классу.Это означает, что ошибка возникает из-за отсутствия класса в пути к классу, вероятно, класса с именем b.как вы развернули свой кот?как вы запустили версию в java se, которая работала?через затмение?ты тоже запускаешь tomcat через затмение?Я предполагаю, что вам не хватает jar-файла в пути к классу tomcat.Поместите отсутствующий jar-файл в папку, где запущено приложение tomcat, в WEB-INF / lib, это должно исправить.где эта папка, тем не менее, немного зависит от ваших настроек.

, если это не поможет, тогда, пожалуйста, дайте больше информации о ваших настройках, как для выполнения tomcat, так и для java se:)

...