GWT/Java—在Eclipse中执行“作为web应用程序运行”时是否可能进行RPC调用(使用GWT插件)?
我是GWT的新手,似乎取得了很大的进步,但现在打RPC电话让我完全不知所措。我遵循了一些教程,据我所知,我做的事情是正确的。但是,我的异步回调方法总是触发我为失败事件设置的方法。我想知道在Eclipse中使用GWT插件运行web应用程序时,RPC调用是否应该工作。另外,要确认的是,我的应用程序运行正常,但有一个例外,因此没有生成错误 这是一种很大的张贴在这里,但我包括我使用的RPC调用的不同部分,以防它可能会帮助我解决这个问题 这是在控制器方法中调用的:GWT/Java—在Eclipse中执行“作为web应用程序运行”时是否可能进行RPC调用(使用GWT插件)?,java,eclipse,gwt,Java,Eclipse,Gwt,我是GWT的新手,似乎取得了很大的进步,但现在打RPC电话让我完全不知所措。我遵循了一些教程,据我所知,我做的事情是正确的。但是,我的异步回调方法总是触发我为失败事件设置的方法。我想知道在Eclipse中使用GWT插件运行web应用程序时,RPC调用是否应该工作。另外,要确认的是,我的应用程序运行正常,但有一个例外,因此没有生成错误 这是一种很大的张贴在这里,但我包括我使用的RPC调用的不同部分,以防它可能会帮助我解决这个问题 这是在控制器方法中调用的: RPCService 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
RPC服务
服务器端:RPCImpl:
web.xml的相关部分:
您忘记将RemoteServiceRelativePath批注添加到您的RPCInterface 谢谢,我发现了一个比我以前使用的更好的教程,所以我想我已经把我的头脑放在它上面了,我还有一个问题,但它与此不同,所以我将在一个新的帖子中发布它
package org.ediscovery.gwt.client.rpc;
import com.google.gwt.user.client.rpc.RemoteService;
public interface RPCInterface extends RemoteService
{
public String testRPC(String message);
}
package org.ediscovery.gwt.client.rpc;
import com.google.gwt.user.client.rpc.AsyncCallback;
public interface RPCInterfaceAsync
{
public void testRPC(String message, AsyncCallback callback);
}
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;
}
}
<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>