2015-04-06 3 views
0

J'utilise:GWT Designer ne fonctionne pas

Eclipse Kepler 4.3 JDK 7 GWT compatible avec Eclipse 4.3 (téléchargé par marché) la version GWT est téléchargée via place du marché avec GWT par défaut 2.6. 0 eclipse la version du compilateur java est 1.7 il n'y a pas un projet Maven

Lorsque je tente faire ouvrir la classe GWT EntryPoint (qui est une interface utilisateur), il jette l'erreur ci-dessous:

la classe EntryPoint (la par défaut créé b y éclipse lors de la création d'un nouveau projet GWT):

package xsdf.com.client; 

import xsdf.com.shared.FieldVerifier; 

/** 
* Entry point classes define <code>onModuleLoad()</code>. 
*/ 
public class Xxwa implements EntryPoint { 
    /** 
    * The message displayed to the user when the server cannot be reached or 
    * returns an error. 
    */ 
    private static final String SERVER_ERROR = "An error occurred while " 
      + "attempting to contact the server. Please check your network " 
      + "connection and try again."; 

    /** 
    * Create a remote service proxy to talk to the server-side Greeting service. 
    */ 
    private final GreetingServiceAsync greetingService = GWT 
      .create(GreetingService.class); 

    /** 
    * This is the entry point method. 
    */ 
    public void onModuleLoad() { 
     final Button sendButton = new Button("Send"); 
     final TextBox nameField = new TextBox(); 
     nameField.setText("GWT User"); 
     final Label errorLabel = new Label(); 

     // We can add style names to widgets 
     sendButton.addStyleName("sendButton"); 

     // Add the nameField and sendButton to the RootPanel 
     // Use RootPanel.get() to get the entire body element 
     RootPanel.get("nameFieldContainer").add(nameField); 
     RootPanel.get("sendButtonContainer").add(sendButton); 
     RootPanel.get("errorLabelContainer").add(errorLabel); 

     // Focus the cursor on the name field when the app loads 
     nameField.setFocus(true); 
     nameField.selectAll(); 

     // Create the popup dialog box 
     final DialogBox dialogBox = new DialogBox(); 
     dialogBox.setText("Remote Procedure Call"); 
     dialogBox.setAnimationEnabled(true); 
     final Button closeButton = new Button("Close"); 
     // We can set the id of a widget by accessing its Element 
     closeButton.getElement().setId("closeButton"); 
     final Label textToServerLabel = new Label(); 
     final HTML serverResponseLabel = new HTML(); 
     VerticalPanel dialogVPanel = new VerticalPanel(); 
     dialogVPanel.addStyleName("dialogVPanel"); 
     dialogVPanel.add(new HTML("<b>Sending name to the server:</b>")); 
     dialogVPanel.add(textToServerLabel); 
     dialogVPanel.add(new HTML("<br><b>Server replies:</b>")); 
     dialogVPanel.add(serverResponseLabel); 
     dialogVPanel.setHorizontalAlignment(VerticalPanel.ALIGN_RIGHT); 
     dialogVPanel.add(closeButton); 
     dialogBox.setWidget(dialogVPanel); 

     // Add a handler to close the DialogBox 
     closeButton.addClickHandler(new ClickHandler() { 
      public void onClick(ClickEvent event) { 
       dialogBox.hide(); 
       sendButton.setEnabled(true); 
       sendButton.setFocus(true); 
      } 
     }); 

     // Create a handler for the sendButton and nameField 
     class MyHandler implements ClickHandler, KeyUpHandler { 
      /** 
      * Fired when the user clicks on the sendButton. 
      */ 
      public void onClick(ClickEvent event) { 
       sendNameToServer(); 
      } 

      /** 
      * Fired when the user types in the nameField. 
      */ 
      public void onKeyUp(KeyUpEvent event) { 
       if (event.getNativeKeyCode() == KeyCodes.KEY_ENTER) { 
        sendNameToServer(); 
       } 
      } 

      /** 
      * Send the name from the nameField to the server and wait for a response. 
      */ 
      private void sendNameToServer() { 
       // First, we validate the input. 
       errorLabel.setText(""); 
       String textToServer = nameField.getText(); 
       if (!FieldVerifier.isValidName(textToServer)) { 
        errorLabel.setText("Please enter at least four characters"); 
        return; 
       } 

       // Then, we send the input to the server. 
       sendButton.setEnabled(false); 
       textToServerLabel.setText(textToServer); 
       serverResponseLabel.setText(""); 
       greetingService.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); 
          } 
         }); 
      } 
     } 

     // Add a handler to send the name to the server 
     MyHandler handler = new MyHandler(); 
     sendButton.addClickHandler(handler); 
     nameField.addKeyUpHandler(handler); 
    } 
} 

L'erreur lorsque je tente d'ouvrir la classe ci-dessus avec Designer GWT:

Internal Error 
encountered unexpected internal error. 

This could be caused by a bug or by a misconfiguration issue, conflict, partial update, etc. 

java.lang.NoSuchMethodError: com.google.gwt.dev.cfg.ModuleDefLoader.loadFromClassPath(Lcom/google/gwt/core/ext/TreeLogger;Ljava/lang/String;Z)Lcom/google/gwt/dev/cfg/ModuleDef; 



Show stack trace. 
Hide stack trace. 

Stack trace: 
java.lang.NoSuchMethodError: com.google.gwt.dev.cfg.ModuleDefLoader.loadFromClassPath(Lcom/google/gwt/core/ext/TreeLogger;Ljava/lang/String;Z)Lcom/google/gwt/dev/cfg/ModuleDef; 
    at com.google.gwt.dev.shell.designtime.HostedModeSupportImpl.loadModule(HostedModeSupportImpl.java:85) 
    at com.google.gwt.dev.shell.designtime.HostedModeSupportImpl.createModuleSpaceHost(HostedModeSupportImpl.java:64) 
    at sun.reflect.NativeMetho 

je l'ai déjà vérifié les éventuels problèmes de:

Que faire si je rencontre NoSuchMethodError ou NoClassDefFoundError avec GWT Designer?

https://developers.google.com/web-toolkit/tools/gwtdesigner/faq#NoSuchMethodError

Je l'ai déjà essayé différentes vms, 1,8, 1,6;

GWT Designer est-il toujours actif? Est la meilleure option pour concevoir l'interface utilisateur? Comment corriger cette erreur et faire fonctionner GWT Designer correctement?

+0

vous voudrez peut-être mettre à jour la version GWT en 2.6.1. c'est un bug basé sur ceci [link] (https://code.google.com/p/google-web-toolkit/issues/detail?id=8649) –

Répondre

2

GWT Designer n'est pas maintenu. Il ne fonctionne pas avec GWT 2.6.0 ou 2.7, et probablement ne fonctionnera pas avec les versions plus récentes. Cela fonctionne cependant avec 2.6.1, mais je ne recommande pas d'utiliser une autre version que la dernière version, en particulier avec DevMode "classique" étant aussi obsolète: 2.7 est la première version où SuperDevMode est vraiment utilisable, et il continuera à améliorer dans les prochaines versions.

+0

C'est ça! Concepteur GWT ne sera pas plus maintenu? Pourquoi? Très bon projet ... – felipe