2012-04-28 11 views
1

私はGWTを初めて使いました。単純なStockWatcherアプリケーションを構築する方法についてのチュートリアルを行うことができました。 これで、サーバーからデータをロードします。 GWTでこれを行うためのさまざまな方法について読んだ後、私はRequestFactoryを使用することに決めました。これは明らかに保守可能なアプリケーションを書く最も感情的な方法だからです。GWT RequestFactory入門

問題は、RequestFactoryについてのチュートリアルがなく、EclipseがGWTのような新しいツールを使用しているときに管理するのが難しいかどうかを知るときに管理するのは難しいということです。

私は同じようRequestFactoryに必要なさまざまなjarを見つけるために管理してきました

  1. GWT-servlet.jarは
  2. GWT-サーブレットdeps.jar
  3. requestfactory-server.jar

次のエラーが表示されます。

java.lang.RuntimeException: The RequestFactory ValidationTool must be run for the com.google.gwt.sample.stockwatcher.shared.service.StockWatcherRequestFactory RequestFactory type 

私はこの方向性も見つけました:RequestFactoryInterfaceValidation しかし、まだ動作していません。

ビルドパスにcom.google.web.bindery.requestfactory.apt.ValidationToolを追加しました。これは役立つようです(メッセージは消えました)が、別のエラーメッセージが表示されました。

私はソースをgithub repositoryにプッシュしました。

どのようなヘルプも素晴らしいでしょう。 他の人が使うことができるようになると、これを手に入れたら投稿をしようとします。

ありがとう、 Ido。

+0

:SEVERE:あなたは、自動的にコンパイルフェーズでのmavenでRequestFactory ValidationToolを実行することができる方法getNum JAを呼び出すことができませんでしたva.lang.IllegalArgumentException:オブジェクトがクラス宣言のインスタンスではありません –

+0

Stacktrace?そのエラーは**何か**かもしれません。 –

答えて

1

私はこれを理解します。オブジェクトが宣言クラスのインスタンスではないということは、メソッドが宣言されている型ではないオブジェクトに対してインスタンスメソッドを呼び出そうとしていることを意味します。

私の間違いは、私のServiceLocator実装では、DAO(StockQuoteDao)の代わりに私のドメインモデルオブジェクト(StockQuote)のインスタンスを間違いなく返すということでした。これによりRequestFactoryコードがStockQuoteインスタンスのStockQuoteDao.getNumメソッドを呼び出そうとします。

Ido。

0

あなたは日食使用するためのGoogleプラグインを使用している場合、あなたが必要この http://vivagwt.blogspot.com/2011/09/requestfactory-en-gwt-24.html はあなたがあなたが

ノートをRequestContextの変更するたびにプロジェクトの再構築:GWT-servlet.jarをが必要とされますが、RPC

また
0

を使用している場合私は新しいエラーメッセージを取得するために管理してきました

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>3.1</version> 
    <configuration> 
     <forceJavacCompilerUse>true</forceJavacCompilerUse> 
    </configuration> 
    <dependencies> 
     <dependency> 
      <groupId>com.google.web.bindery</groupId> 
      <artifactId>requestfactory-apt</artifactId> 
      <version>2.6.1</version> 
     </dependency> 
    </dependencies> 
</plugin>