2011-01-14 18 views
0

私はamazon AWSをJava Webアプリケーションで使用しようとしていて、Apache Tomcatで動作しています。私のアプリを実行すると、失敗すると、amazon AWS in web app、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) 

どのようなアイデアですか?

AmazonS3Clientのコードを見ると、SDK jarには存在しない "request.handlers"という名前のリソースを読み込もうとしているようです。どこにも参照が見つかりません。

編集:修正、request.handlersはJARにありますが、S3の下のバージョンは空です。 "b"がどこから来ているのか分かりません。

編集:私は同じ結果でグラスフィッシュを試したので、風袋のタグを削除します。 Java SEのenvで動作することに注意してください。

+0

さらに出力が必要です。多分 "原因"によって – davogotland

+0

投稿された例外が根本原因です。いずれのログにも何も表示されません。 –

答えて

-1

のための両方。

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.

この設定でAWS jarに問題があった理由を説明できません。 netbeans(6.9.1)を使って新しいWebアプリケーションプロジェクトを作成したとき、デフォルトでtrueに設定されていました。

-1

Java SE環境で動作しているということは、クラスパスの問題であることがわかります。つまり、エラーはクラスパスにないクラス、おそらくbという名前のクラスから発生します。どのようにあなたは風袋を配達しましたか?どのように働いているJava SEでバージョンを実行しましたか?日食を通して?あなたはEclipseを介してTomcatを実行していますか?私はあなたがtomcatクラスのパス上にいくつかのjarファイルがないと思っています。不足しているjarファイルをtomcatがWEB-INF/libの下でアプリケーションを実行しているフォルダに置くと、これを修正する必要があります。このフォルダはあなたの設定に少し依存します。これが解決しない場合は

、そして、あなたの設定により多くの情報を与えてください、私はのcontext.xmlで「antiLockingJARs」をオフにし、問題が去っていきましたTomcatの実行とJava SEの:)