[英]GWT / Java - Possible to make RPC calls when doing “run as web application” in Eclipse (with GWT plugin)?
我对GWT相当陌生,似乎取得了很多进步,但是现在进行RPC调用使我彻底迷住了。 我已经看了一些教程,据我所知,这是在做正确的事。 但是,我的Asynch回调方法始终会触发我为失败事件设置的方法。 我想知道在Eclipse(带有GWT插件)中“作为Web应用程序运行”时,RPC调用是否应该工作。 另外,为确认这一点,我的应用程序除此以外的运行正常,因此没有构建错误。
在这里发布了很多东西,但是我包括了用于进行RPC调用的内容的不同部分,以防它可以帮助我解决此问题。
这在控制器方法中被调用:
RPCService rpc = GWT.create(RPCService.class);
//new RPCService();
rpc.testRPC("Hello", callback);
Asynch方法为:
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);
}
RPC服务
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>
您忘记了将RemoteServiceRelativePath批注添加到RPCInterface。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.