GAE java.lang.IllegalStateException:* BlobStorage()最初のセットの1つを呼び出す必要があります

StackOverflow https://stackoverflow.com/questions/3402226

質問

私は、ブロブストア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アプリケーション

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top