Java 使用GWT发送电子邮件:获取AccessControlException
我有这个问题,我似乎不能轻易解决 我想从GWT webApp中发送电子邮件。在将代码放入服务器端并按预期使用异步接口调用它方面,我做了所有正确的事情。因此,一切正常,只是当我执行发送电子邮件功能时,我得到一个类型为mailexception with的错误和类型为AccessControlException的内部异常Java 使用GWT发送电子邮件:获取AccessControlException,java,email,gwt,access-denied,Java,Email,Gwt,Access Denied,我有这个问题,我似乎不能轻易解决 我想从GWT webApp中发送电子邮件。在将代码放入服务器端并按预期使用异步接口调用它方面,我做了所有正确的事情。因此,一切正常,只是当我执行发送电子邮件功能时,我得到一个类型为mailexception with的错误和类型为AccessControlException的内部异常“拒绝访问(java.net.SocketPermission resolve)” 现在我在一个普通的Java控制台应用程序中测试了这个函数,它工作得非常好。所以我想我需要添加一些代
“拒绝访问(java.net.SocketPermission resolve)”
现在我在一个普通的Java控制台应用程序中测试了这个函数,它工作得非常好。所以我想我需要添加一些代码来授予访问权限。有人能帮我吗
以下是发送电子邮件的代码:
public void SendMail(String name, String email, String message) throws EmailException{
Email email1 = new SimpleEmail();
email1.setHostName("mysmtpserver");
email1.setSmtpPort(25);
email1.setAuthenticator(new DefaultAuthenticator("myemail", "mypwd"));
email1.setTLS(false);
email1.setFrom(email);
email1.setSubject("Feedback from your website");
email1.setMsg(escapeHtml(message));
email1.addTo("targetemail");
email1.send();
}
这就是调用它的类的代码:
public class SiteDataServiceImpl extends RemoteServiceServlet implements SiteDataService {
@Override
public boolean SendEmail(String name, String email, String message) throws IllegalArgumentException {
try {
new Common().SendMail(name, email, message);
return true;
} catch (EmailException e) {
e.printStackTrace();
return false;
}
}
}
PS:我起初认为我需要包含mail.jar归档,但它已经包含在gwt工具包中,所以这不是问题的原因。我正在将Jetty与Eclipse一起使用。好的,这听起来可能有点奇怪,但我将代码部署在了一个开发服务器(linux)上,它工作得非常出色 在我的windows机器上,它仍然不工作,并且仍然得到相同的错误。但是由于它在dev机器上工作,我很高兴
但是,这仍然不能解释原因。…要调试它,请创建一个简单的项目,其中只包含一个邮件和一个main,然后确保从与GWT服务器相同的机器上运行它。这将使您确信邮件代码正在按预期运行。您是否已将activation.jar包含在web应用程序的库中?仔细想想。。。看起来您的服务器存在一些问题,请检查它们是否引用了相同的版本。我要检查的另一个地方是您的smtp服务器设置。感谢您的回复,但我尝试了所有这些,但没有任何积极的结果。您是否尝试过使用Simple main的独立java应用程序?我怀疑这与一些防火墙设置有关