我正在用 Maven 开发一个项目。在发送电子邮件的类中,在运行和开发模式下,我收到以下错误:Caused by: java.io.FileNotFoundException: jQuery/images/logo.png (Ficheiro ou directory inexistente) ==> translation = File or找不到目录。
我尝试了很多路径,例如“./jQuery/images/logo.png”、“/jQuery/images/logo.png”等。完整的相对路径是:“src/main/webapp/jQuery/images/logo.png”。
在“target”文件夹中,路径是“project-1.0-SNAPSHOT/jQuery/images/logo.png”。里面的war文件,是“jQuery/images/logo.png”。
我认为这并不重要,但我使用 NetBeans 7.1.1 作为 IDE。
发现运行时返回的绝对路径是“/home/user/apache-tomcat-7.0.22/bin/jQuery/images/logo.png”!...不是项目路径!
如何在 Maven 项目中获取 webapp 文件夹中的文件和 Java 类的后代?
代码是:
MimeBodyPart attachmentPart = null;
FileDataSource fileDataSource = null;
for (File a : attachments) {
System.out.println(a.getAbsolutePath());
attachmentPart = new MimeBodyPart();
fileDataSource = new FileDataSource(a) {
@Override
public String getContentType() {
return "application/octet-stream";
}
};
attachmentPart.setDataHandler(new DataHandler(fileDataSource));
attachmentPart.setFileName(fileDataSource.getName());
multipart.addBodyPart(attachmentPart);
}
msg.setContent(multipart);
msg.saveChanges();
Transport transport = session.getTransport("smtp");
transport.connect(host, from, "password");
transport.sendMessage(msg, msg.getAllRecipients());