簡體   English   中英

Web應用程序中的亞馬遜AWS,InstantiationError:com.amazonaws.handlers.b

[英]amazon AWS in web app, InstantiationError: com.amazonaws.handlers.b

我試圖在運行於Apache Tomcat的Java Web應用程序中使用Amazon AWS。 當我運行我的應用程序時,它失敗了,

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 jar中不存在……而我在其他任何地方都找不到對它的任何引用。

編輯:更正,request.handlers在JAR中,但S3下的版本為空。 不知道“ b”是從哪里來的。

編輯:刪除tomcat標記,就像我在glassfish上嘗試的一樣。 請注意,它確實可以在Java SE環境中使用。

它在Java SE環境中運行的事實應該告訴我們這是類路徑問題。 這意味着錯誤來自類路徑上缺少的類,可能是名為b的類。 您是如何部署雄貓的? 您如何在Java SE中運行有效的版本? 通過日食? 您也在通過Eclipse運行Tomcat嗎? 我猜測您在tomcat類路徑上缺少一些jar文件。 將丟失的jar文件放在WEB-INF / lib下的Tomcat運行應用程序的文件夾中,可以解決此問題。 該文件夾的位置取決於您的設置。

如果這樣做沒有幫助,請提供有關tomcat執行和java se的更多信息:)

我在Context.xml中關閉了“ antiLockingJARs”,問題消失了。

如果為true,則在通過URL訪問JAR內部的資源時,Tomcat類加載器將采取額外的措施以避免JAR文件鎖定。 這將影響應用程序的啟動時間,但在可能發生文件鎖定的平台或配置上可能會很有用。 如果未指定,則默認值為false。

我無法解釋為什么AWS jar對此設置有問題。 當我通過netbeans(6.9.1)創建新的Web應用程序項目時,默認情況下將其設置為true。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM