Hi. I made an RPC for sending an email
this is the Impl file:
package faceRecognition.server;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import faceRecognition.client.EmailService;
import faceRecognition.server.Email.SendMail.Gmail;
@SuppressWarnings("serial")
public class EmailServiceImpl extends RemoteServiceServlet implements
EmailService {
@Override
public String send(String emailTo, String subject, String body) {
String msg = "";
msg = Gmail.send("this", emailTo, subject, body);
return(msg);
}
}
when i commented out the line "msg = Gmail.send("this", emailTo,
subject, body);"
everything is ok. the problem is in the method Gmail.send:
package faceRecognition.server.Email.SendMail;
import java.security.Security;
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;
public class Gmail {
private static final String SMTP_HOST_NAME = "smtp.gmail.com";
private static final String SMTP_PORT = "465";
private static final String SSL_FACTORY =
"javax.net.ssl.SSLSocketFactory";
public static String send(String emailFromAddress, String sendTo,
String subject, String body){
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider
());
String[] emails = new String[1];
emails[0] = sendTo;
try {
sendSSLMessage("[email protected]", "password", emails,
subject,
body, emailFromAddress);
return("");
}catch (Exception e) {
e.printStackTrace();
return(e.getMessage());
}
}
private static void sendSSLMessage(final String username, final
String password, String recipients[], String subject,
String message, String from) throws MessagingException {
boolean debug = true;
Properties props = new Properties();
props.put("mail.smtp.host", SMTP_HOST_NAME);
props.put("mail.smtp.auth", "true");
props.put("mail.debug", "true");
props.put("mail.smtp.port", SMTP_PORT);
props.put("mail.smtp.socketFactory.port", SMTP_PORT);
props.put("mail.smtp.socketFactory.class", SSL_FACTORY);
props.put("mail.smtp.socketFactory.fallback", "false");
Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {
@Override
protected PasswordAuthentication
getPasswordAuthentication() {
return new PasswordAuthentication(username,
password);
}
});
session.setDebug(debug);
Message msg = new MimeMessage(session);
InternetAddress addressFrom = new InternetAddress(from);
msg.setFrom(addressFrom);
InternetAddress[] addressTo = new InternetAddress
[recipients.length];
for (int i = 0; i < recipients.length; i++) {
addressTo[i] = new InternetAddress(recipients[i]);
}
msg.setRecipients(Message.RecipientType.TO, addressTo);
// Setting the Subject and Content Type
msg.setSubject(subject);
msg.setContent(message, "text/html");
//Transport.send(msg);
javax.mail.Transport.send(msg); //HERE I GET THE FOLLOWING
ERROR
}
}
The error which i get is:
DEBUG: getProvider() returning javax.mail.Provider
[TRANSPORT,gm,com.google.appengine.api.mail.stdimpl.GMTransport]
com.google.apphosting.api.ApiProxy$CallNotFoundException: The API
package 'mail' or call 'Send()' was not found.
at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:70)
at com.google.appengine.api.mail.MailServiceImpl.doSend
(MailServiceImpl.java:96)
at com.google.appengine.api.mail.MailServiceImpl.send
(MailServiceImpl.java:33)
at com.google.appengine.api.mail.stdimpl.GMTransport.sendMessage
(GMTransport.java:247)
at javax.mail.Transport.send0(Transport.java:191)
at javax.mail.Transport.send(Transport.java:120)
at faceRecognition.server.Email.SendMail.Gmail.sendSSLMessage
(Gmail.java:75)
at faceRecognition.server.Email.SendMail.Gmail.send(Gmail.java:26)
at faceRecognition.server.EmailServiceImpl.send(EmailServiceImpl.java:
17)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse
(RPC.java:527)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall
(RemoteServiceServlet.java:166)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost
(RemoteServiceServlet.java:86)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
487)
at org.mortbay.jetty.servlet.ServletHandler.handle
(ServletHandler.java:362)
at org.mortbay.jetty.security.SecurityHandler.handle
(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle
(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle
(ContextHandler.java:729)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:
405)
at org.mortbay.jetty.handler.HandlerWrapper.handle
(HandlerWrapper.java:152)
at org.mortbay.jetty.handler.RequestLogHandler.handle
(RequestLogHandler.java:49)
at org.mortbay.jetty.handler.HandlerWrapper.handle
(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:
505)
at org.mortbay.jetty.HttpConnection$RequestHandler.content
(HttpConnection.java:843)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
at org.mortbay.io.nio.SelectChannelEndPoint.run
(SelectChannelEndPoint.java:395)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run
(QueuedThreadPool.java:488)
What is going on? This code sends email fine when i have it in my
desktop app. Here this exception occurs. Any ideas?
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Google Web Toolkit" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/Google-Web-Toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---