2012-06-27 17 views
6

... son gwt bir proje GWT düğmeye tıklandığındaGWT UYARI: bulunamadı dosyası: sunucuya bağlamayın /com.mycompany.project.ImageViewer/GreetingService

Tutulma var:

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); 
          } 
         }); 

benim gwt sunucusu:

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

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; 
    } 

benim gwt vatani var

gwt serviseAsyn dosyası: tıklama butonuna

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> 

- neden - dosyasını bulmuyorum çünkü sunucu, değer döndürmez?

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

Ne yapmalı? senin web.xml dosyasında

cevap

6

Eğer /hello123/greet olarak hizmet map: Hata o /modulename/serviceinterfacename veya/com.mycompany.project.ImageViewer/GreetingService varsayılan yüklemeye çalışıyor gösterir

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

iken. İki seçenek mevcuttur:

  1. Değişim web.xml giriş özel yolunun
  2. tezlerin

Hem tartışılmıştır kısaca gelen yüklemek için RPC arayüzü

  • Configure uzaktan servis beklediği varsayılan url kullanmak https://developers.google.com/web-toolkit/doc/latest/DevGuideServerCommunication, diğer RPC kurulum detayları ile birlikte. İkinci seçenek için

    bu genellikle şuna benzer:

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