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

时间:2012-06-27 16:03:30

标签: java gwt

不要连接到服务器......这是最后一个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文件:

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

该怎么办?

1 个答案:

答案 0 :(得分:7)

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. 配置要从自定义路径加载的远程服务
  3. https://developers.google.com/web-toolkit/doc/latest/DevGuideServerCommunication简要讨论了这两个论文,以及其他RPC设置细节。

    对于第二种选择,通常如下所示:

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