7

サーバーに接続しないでください...これは最後のgwtEclipseのプロジェクトです

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

何をすべきか?

4

1 に答える 1

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。2つのオプションが利用可能です:

  1. web.xmlRPCインターフェイスが期待するデフォルトのURLを使用するようにエントリを変更します
  2. カスタムパスからロードするようにリモートサービスを構成します

これらは両方とも、 https://developers.google.com/web-toolkit/doc/latest/DevGuideServerCommunicationで、他のRPCセットアップの詳細とともに簡単に説明されています。

2番目のオプションの場合、これは通常次のようになります。

MyServiceAsync service = GWT.create(MyService.class);
((ServiceDefTarget)service).setServiceEntryPoint("/hello123/greet");
service.methodName(...
于 2012-06-27T21:39:32.447 に答える