GAE java.lang.IllegalStateException:* BlobStorage()最初のセットの1つを呼び出す必要があります
-
25-09-2019 - |
質問
私は、ブロブストアAPIを使用してGAEでファイルをアップロードしようとしています。ローカルGAEサーバを実行しているとき、私は次の例外を取得しています(DEVモード):
WARNING: /_ah/upload/ag10cmlwc2NoZWR1bGVychsLEhVfX0Jsb2JVcGxvYWRTZXNzaW9uX18YFQw
java.lang.IllegalStateException: Must call one of set*BlobStorage() first.
at com.google.appengine.api.blobstore.dev.BlobStorageFactory.getBlobStorage(BlobStorageFactory.java:24)
at com.google.appengine.api.blobstore.dev.UploadBlobServlet.init(UploadBlobServlet.java:88)
at javax.servlet.GenericServlet.init(GenericServlet.java:215)
at org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:440)
at org.mortbay.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:339)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
私はGAE 1.3.5を実行していますが、GAE 1.3.0(ブロブストアでの最初のバージョン)以降のすべてのバージョンを試してみました。 http://code.google.com/p:私はGAEのMavenプラグインを使用しています/ Mavenの-GAE-プラグイン/ の
は私のフォームは、GWT 2.0.4で書かれています。現在、フォームを提出すると、単にファイル入力フィールドです。
私は、フォームを送信した後、上記の例外を受け取ります。私は正常にブロブストアサービスからアップロードURLを取得できています。
すべてはGAE上で正常に動作します。私は何も(DEV管理コンソールを介した)私の地元のdevのENVでブロブストアに入力されていないことを確認しました。私は〜1KBですが、成功(GAEのPROD上の同じファイルの作業)せず、同様に他のファイルの種類/サイズを試してみましたCSVをアップロードしています。
解決 2
問題は、スタブを持つとのdevのアプリケーションサーバーを実行している場合、クラスパスに含まれてjarファイルをテストすることによって引き起こされました。あなたはMavenを使用している場合は、単に依存関係の範囲を変更します。
<dependency>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-api-stubs</artifactId>
<version>${gae.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-testing</artifactId>
<version>${gae.version}</version>
<scope>test</scope>
</dependency>
あなたはMavenを使用していない場合は、、必ずこれらのjarファイルは、あなたのWEB-INF / libのか、クラスパスに含まれていない作ります。
他のヒント
場合は複数回(など、サーブレット、JSPを使用して)HTMLを生成し、あなたのページを呼び出すと、呼び出しは、あなたが再使用することはできませんこのページをblobstoreService.createUploadUrl("/upload");
。
リロードブラウザでこのページの毎回のファイルをアップロードしたいと思います。
$ mvn clean gae:run -DskipTest
私にとっては作品
私はMavenの、ちょうどEclipseとGAEプラグインを使用していません。私も自分のクラスパスに任意ののテストの.jarファイルが表示されませんでした。私はEclipseで実行構成を削除し、再起動し、それが働きました。 DEV /ローカルモードで実行している間は何が悪かったのかアイデアが、これは私のために問題を修正しません。
プラグインでMavenを使用しますがEclipseのない場合:
REMOVEのRUN /デバッグ構成。新しい作成するには、単にプロジェクトを右クリックし、[実行/デバッグAs]を選択> [Webアプリケーション