2011-02-10 4 views
0

私はGWTをかなり新しくしていて、多くの進歩を遂げているようですが、今はRPC呼び出しを行うと完全に困惑しています。私はいくつかのチュートリアルに従っており、私が知る限り、正しいことをやっています。しかし、私のAsynchのコールバックメソッドは、私が失敗のイベントのために設定したメソッドを常に起動しています。 Eclipse(GWTプラグイン)で「Webアプリケーションとして実行」を実行するときにRPC呼び出しが機能するかどうかは疑問です。また、確認するために、私のアプリケーションはこれを除いて正常に動作しますので、ビルドエラーはありません。GWT/Java - EclipseでGWTプラグインを使用して "Webアプリケーションとして実行"を実行するときにRPC呼び出しを行うことができますか?

ここに投稿するのはたくさんありますが、これを解決するためにRPC呼び出しを行うために私が使っているもののさまざまな部分を含めています。

この制御メソッド内で呼び出されている:非同期メソッドされた状態で

RPCService rpc = GWT.create(RPCService.class); 
     //new RPCService(); 

    rpc.testRPC("Hello", callback); 

AsyncCallback callback = new AsyncCallback() 
{ 
public void onFailure(Throwable caught) 
{ 
    display.setTestRPC("failed"); 
} 

public void onSuccess(Object result) 
{ 
    display.setTestRPC("success"); 
} 
}; 

実際のRPCクラス/インターフェース:

RPCInterfaceAsync

package org.ediscovery.gwt.client.rpc; 

import com.google.gwt.user.client.rpc.RemoteService; 
public interface RPCInterface extends RemoteService 
{ 
    public String testRPC(String message); 
} 

RPCService

package org.ediscovery.gwt.client.rpc; 

import com.google.gwt.user.client.rpc.AsyncCallback; 

public interface RPCInterfaceAsync 
{ 
    public void testRPC(String message, AsyncCallback callback); 
} 

サーバーサイド:RPCImpl:

package org.ediscovery.gwt.server.service; 

import java.text.DateFormat; 
import java.util.Date; 

import org.ediscovery.gwt.client.rpc.RPCInterface; 

import com.google.gwt.user.server.rpc.RemoteServiceServlet; 

public class RPCImpl extends RemoteServiceServlet implements RPCInterface 
{ 
    private static final long serialVersionUID = 1L; 

    public String testRPC(String message) 
    { 
     Date now = new Date(); 
     String dtm = DateFormat.getTimeInstance(DateFormat.MEDIUM).format(now); 
     return "Got the message '" + message +"' at " + dtm; 
    } 
} 

のweb.xmlの関連部分:

<servlet> 
    <servlet-name>RPCImpl</servlet-name> 
    <servlet-class>org.ediscovery.gwt.server.service.RPCImpl</servlet-class> 
    </servlet> 

    <servlet-mapping> 
    <servlet-name>RPCImpl</servlet-name> 
    <url-pattern>/HelloGoodByeMVP.html/rpc</url-pattern> 
    </servlet-mapping> 

答えて

0

あなたはRemoteServiceRelativを追加することを忘れていますあなたのRPCInterfaceへのePath注釈..

+0

私は前に使用していたよりも良いチュートリアルを見つけたので、私はそれの周りに私の頭をラップしたと思う、私は別の質問がありますが、新しい投稿に投稿する – Rick

関連する問題