GWT 警告:找不到以下文件:/com.mycompany.project.ImageViewer/GreetingSe



不要连接到服务器...这是上次GWT Eclipse中的一个项目

在 GWT 中单击按钮:

greetServer(textToServer,
                        new AsyncCallback<String>() {
                            public void onFailure(Throwable caught) {
                                // Show the RPC error message to the user
                                dialogBox
                                        .setText("Remote Procedure Call - Failure");
                                serverResponseLabel
                                        .addStyleName("serverResponseLabelError");
                                serverResponseLabel.setHTML(SERVER_ERROR);
                                dialogBox.center();
                                closeButton.setFocus(true);
                            }
                            public void onSuccess(String result) {
                                dialogBox.setText("Remote Procedure Call");
                                serverResponseLabel
                                        .removeStyleName("serverResponseLabelError");
                                serverResponseLabel.setHTML(result);
                                dialogBox.center();
                                closeButton.setFocus(true);
                            }
                        });

我的 GWT 服务器:

    public String greetServer(String input) throws IllegalArgumentException {
        // Verify that the input is valid. 
        if (!FieldVerifier.isValidName(input)) {
            // If the input is not valid, throw an IllegalArgumentException back to
            // the client.
            throw new IllegalArgumentException(
                    "Name must be at least 4 characters long");
        }
        String serverInfo = getServletContext().getServerInfo();
        String userAgent = getThreadLocalRequest().getHeader("User-Agent");
        // Escape data from the client to avoid cross-site script vulnerabilities.
        input = escapeHtml(input);
        userAgent = escapeHtml(userAgent);
        return "Hello, " + input + "!<br><br>I am running " + serverInfo
                + ".<br><br>It looks like you are using:<br>" + userAgent;
    }

这是我的GWT服务:

@RemoteServiceRelativePath("greet")
public interface GreetingService extends RemoteService {
    String greetServer(String name) throws IllegalArgumentException;
}

gwt serviseAsyn file:

public interface GreetingServiceAsync {
    void greetServer(String input, AsyncCallback<String> callback)
            throws IllegalArgumentException;
}

web xml
  <!-- Servlets -->
  <servlet>
    <servlet-name>greetServlet</servlet-name>
    <servlet-class>kill.server.GreetingServiceImpl</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>greetServlet</servlet-name>
    <url-pattern>/hello123/greet</url-pattern>
  </servlet-mapping>
  <!-- Default page to serve -->
  <welcome-file-list>
    <welcome-file>Hello123.html</welcome-file>
  </welcome-file-list>

单击按钮 - 服务器不返回值,因为找不到文件 - 为什么?

Jun 27, 2012 11:12:13 AM com.google.appengine.tools.development.LocalResourceFileServlet doGet
WARNING: No file found for: /com.mycompany.project.ImageViewer/GreetingService

怎么办?

web.xml文件中,将服务映射为/hello123/greet

<servlet-mapping>
    <servlet-name>greetServlet</servlet-name>
    <url-pattern>/hello123/greet</url-pattern>
</servlet-mapping>

而错误显示它正在尝试加载默认值 /modulename/serviceinterfacename , 或/com.mycompany.project.ImageViewer/GreetingService .有两个选项可用:

  1. 更改web.xml条目以使用 RPC 接口所需的默认 URL
  2. 将远程服务配置为从自定义路径加载

在 https://developers.google.com/web-toolkit/doc/latest/DevGuideServerCommunication 中简要讨论了这两个方面以及其他 RPC 设置详细信息。

对于第二个选项,这通常如下所示:

MyServiceAsync service = GWT.create(MyService.class);
((ServiceDefTarget)service).setServiceEntryPoint("/hello123/greet");
service.methodName(...

相关内容

最新更新