2011-07-08 14 views
5

私は以下のコードに疑問を持っている...GWT RPCインターフェイスの問題

@RemoteServiceRelativePath("stockPrices") 
public interface StockPriceService extends RemoteService { 

    StockPrice[] getPrices(String[] symbols); 
} 

いずれかが何@RemoteServiceRelativePath("stockPrices")の使用であると私たちは「stockPrices」に与えるために必要なものの名前を私に説明してもらえます...それは必須です??

ありがとうございます!

答えて

8

documentation for RemoteServiceRelativePath annotationをチェックしてください。この注釈が何をしているかをよく説明しています。あなたの場合、サービスはGWT.getModuleBaseURL() + "stockPrices"になければなりません。つまり、GWTアプリが/mygwtappにある場合、サービスは/mygwtapp/stockPricesでなければなりません。通常、サービスインタフェースを実装するサーブレットを定義することによって、このURLにサービスをインストールする必要があります。

"stockPrices"の代わりに他のパスを使用することもできます。サーバー上にこのパスの背後に実際のサービスがあることを確認してください。

あなたのリモートサービスは@RemoteServiceRelativePathアノテーションを使用することによって、またはServiceDefTarget interfaceを通してそれを設定することにより、いずれか、一部リモートパス(エントリポイント)が必要です。サービスにエントリポイントがない場合は、呼び出すことはできません。 (注意:このパスは、サーバー上のURLである)の代わりに@RemoteServiceRelativePathを使用しての、例えば

、あなたはこの注釈なしであなたのサービスを定義し、あなたは非同期サービスプロキシをインスタンス化するときに、あなたが明示的に設定したパスすることができます

StockPriceServiceAsync stockService = GWT.create(StockPriceService.class); 
((ServiceDefTarget) stockService).setServiceEntryPoint("/services/stock.service"); 
+0

はええ、私は、あなたの応答のための感謝を理解しました! –