2011-12-09 139 views
2

我是Google应用引擎的新手,我正在开发一个项目。我刚刚创建的应用程序,当我尝试运行它,它显示了错误:GWT未能加载模块

[ERROR] [ukstudentfeedback] Failed to load module 'ukstudentfeedback' from user agent 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2' at localhost:51937.

下面是我的代码快照:

package com.ukstudentfeedback.client; 

import java.io.UnsupportedEncodingException; 

import java.util.Properties; 

import javax.mail.Message; 
import javax.mail.MessagingException; 
import javax.mail.Session; 
import javax.mail.Transport; 
import javax.mail.internet.AddressException; 
import javax.mail.internet.InternetAddress; 
import javax.mail.internet.MimeMessage; 

import com.google.gwt.core.client.EntryPoint; 
import com.google.gwt.event.dom.client.ClickEvent; 
import com.google.gwt.event.dom.client.ClickHandler; 
import com.google.gwt.event.dom.client.KeyUpEvent; 
import com.google.gwt.event.dom.client.KeyUpHandler; 
import com.google.gwt.user.client.ui.Button; 
import com.google.gwt.user.client.ui.RootPanel; 
import com.google.gwt.user.client.ui.TextBox; 

public class Ukstudentfeedback implements EntryPoint{ 


    // ... 
    public void onModuleLoad() 
    { 
     java.lang.System.out.println("I finally worked!"); 
     final Button sendButton; 
     final TextBox toField, fromField, subjectField, messageField; 

     sendButton = new Button("Send"); 
     toField = new TextBox(); 
     fromField = new TextBox(); 
     subjectField = new TextBox(); 
     messageField = new TextBox(); 

     sendButton.addStyleName("sendButton"); 

     toField.setText("Testing"); 
    // Add the nameField and sendButton to the RootPanel 
    // Use RootPanel.get() to get the entire body element 
     RootPanel.get("sendButton").add(sendButton); 
     RootPanel.get("To").add(toField); 
     RootPanel.get("From").add(fromField); 
     RootPanel.get("Subject").add(subjectField); 
     RootPanel.get("Message").add(messageField); 

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

       sendButton.setEnabled(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) { 
        java.lang.System.out.println("I have been clisked"); 
        sendMessage(); 
       } 

       @Override 
       public void onKeyUp(KeyUpEvent event) { 
        // TODO Auto-generated method stub 

       } 



      public void sendMessage() 
      { 
       Properties props = new Properties(); 
       Session session = Session.getDefaultInstance(props, null); 
       /* 
       * Get all the user's inputs 
       */ 
       String to = toField.getText(); 
       String from = fromField.getText(); 
       String subject = subjectField.getText(); 
       String message = messageField.getText(); 

       try 
       { 
        Message msg = new MimeMessage(session); 
        msg.setFrom(new InternetAddress(from, "Admin")); 
        msg.addRecipient(Message.RecipientType.TO, 
            new InternetAddress(to, "Mr. User")); 
        msg.setSubject(subject); 
        msg.setText(message); 
        Transport.send(msg); 

       } 
       catch (AddressException e) 
       { 
        // ... 
       } catch (MessagingException e) 
       { 
        // ... 
       } catch (UnsupportedEncodingException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 

      } 

    } 
    // Add a handler to send the name to the server 
      MyHandler handler = new MyHandler(); 
      sendButton.addClickHandler(handler); 
    } 
} 
<?xml version="1.0" encoding="UTF-8"?> 
<module rename-to='ukstudentfeedback'> 
    <!-- Inherit the core Web Toolkit stuff.      --> 
    <inherits name='com.google.gwt.user.User'/> 

    <!-- Inherit the default GWT style sheet. You can change  --> 
    <!-- the theme of your GWT application by uncommenting   --> 
    <!-- any one of the following lines.       --> 
    <inherits name='com.google.gwt.user.theme.clean.Clean'/> 
    <!-- <inherits name='com.google.gwt.user.theme.standard.Standard'/> --> 
    <!-- <inherits name='com.google.gwt.user.theme.chrome.Chrome'/> --> 
    <!-- <inherits name='com.google.gwt.user.theme.dark.Dark'/>  --> 

    <!-- Other module inherits          --> 
    <inherits name='com.ukstudentfeedback.Ukstudentfeedback'/> 
    <!-- Specify the app entry point class.       --> 
    <entry-point class='com.ukstudentfeedback.client.Ukstudentfeedback'/> 

    <!-- Specify the paths for translatable code     --> 
    <source path='client'/> 
    <source path='shared'/> 

</module> 

错误:

[DEBUG] [ukstudentfeedback] - Validating newly compiled units 
[TRACE] [ukstudentfeedback] - Finding entry point classes 
    [ERROR] [ukstudentfeedback] - Errors in 'file:/Users/umajosiah/Programming/Java/eclipse/workspace/ukstudentfeedback/src/com/ukstudentfeedback/client/Ukstudentfeedback.java' 
     [ERROR] [ukstudentfeedback] - Line 8: The import javax.mail cannot be resolved 
     [ERROR] [ukstudentfeedback] - Line 9: The import javax.mail cannot be resolved 
     [ERROR] [ukstudentfeedback] - Line 10: The import javax.mail cannot be resolved 
     [ERROR] [ukstudentfeedback] - Line 11: The import javax.mail cannot be resolved 
     [ERROR] [ukstudentfeedback] - Line 12: The import javax.mail cannot be resolved 
     [ERROR] [ukstudentfeedback] - Line 13: The import javax.mail cannot be resolved 
     [ERROR] [ukstudentfeedback] - Line 14: The import javax.mail cannot be resolved 
     [ERROR] [ukstudentfeedback] - Line 80: Session cannot be resolved to a type 
     [ERROR] [ukstudentfeedback] - Line 80: Session cannot be resolved 
     [ERROR] [ukstudentfeedback] - Line 91: Message cannot be resolved to a type 
     [ERROR] [ukstudentfeedback] - Line 91: MimeMessage cannot be resolved to a type 
     [ERROR] [ukstudentfeedback] - Line 92: InternetAddress cannot be resolved to a type 
     [ERROR] [ukstudentfeedback] - Line 93: Message cannot be resolved 
     [ERROR] [ukstudentfeedback] - Line 94: InternetAddress cannot be resolved to a type 
     [ERROR] [ukstudentfeedback] - Line 97: Transport cannot be resolved 
     [ERROR] [ukstudentfeedback] - Line 100: AddressException cannot be resolved to a type 
     [ERROR] [ukstudentfeedback] - Line 103: MessagingException cannot be resolved to a type 
    [ERROR] [ukstudentfeedback] - Unable to find type 'com.ukstudentfeedback.client.Ukstudentfeedback' 
     [ERROR] [ukstudentfeedback] - Hint: Previous compiler errors may have made this type unavailable 
     [ERROR] [ukstudentfeedback] - Hint: Check the inheritance chain from your module; it may not be inheriting a required module or a module may not be adding its source path entries properly 
[ERROR] [ukstudentfeedback] - Failed to load module 'ukstudentfeedback' from user agent 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2' at localhost:51937 

回答

2

的问题是,你要在客户端上使用未实现的Java类。邮件需要从服务器发送,并且服务器不能从javax.mail类传回任何东西。

import javax.mail.Message; 
import javax.mail.MessagingException; 
import javax.mail.Session; 
import javax.mail.Transport; 
import javax.mail.internet.AddressException; 
import javax.mail.internet.InternetAddress; 
import javax.mail.internet.MimeMessage; 

无的,这是序列化的,没有它可以转化为Javascript,因为没有它是由GWT实现。阅读更多关于此herehere

+0

谢谢克里斯,我得到了它的工作:) –

0

您只能使用GWT模拟的类。软件包javax.mail不是模拟的。 您必须在服务器上执行此操作。

[ERROR] [ukstudentfeedback] - Line 8: The import javax.mail cannot be resolved 
    [ERROR] [ukstudentfeedback] - Line 9: The import javax.mail cannot be resolved 
    [ERROR] [ukstudentfeedback] - Line 10: The import javax.mail cannot be resolved 
    [ERROR] [ukstudentfeedback] - Line 11: The import javax.mail cannot be resolved 
    [ERROR] [ukstudentfeedback] - Line 12: The import javax.mail cannot be resolved 
    [ERROR] [ukstudentfeedback] - Line 13: The import javax.mail cannot be resolved 
    [ERROR] [ukstudentfeedback] - Line 14: The import javax.mail cannot be resolved 

请参见下面的链接:

http://code.google.com/webtoolkit/doc/latest/RefJreEmulation.html

+0

感谢球员们,我的工作现在:) –