我是Google应用引擎的新手,我正在开展一个项目。我刚刚创建了一个应用程序,当我尝试运行它时,它显示错误:
[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
答案 0 :(得分: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实现的。详细了解here和here。
答案 1 :(得分: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