繁体   English   中英

GWT / Java-在Eclipse中(使用GWT插件)执行“作为Web应用程序运行”时,可以进行RPC调用吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM