如何找到的路径,在GlassFish中V3.0 .txt文件(How to find the pat

2019-11-05 05:01发布

在我aplication我想一个HTML模板发送到用户的电子邮件。 正确Everithing作品,当我编程方式创建的HTML,但我想现在要做的是什么,是在我的应用程序的文件中读取HTML文本,并将其发送。 我得到一个FileNotFoundException异常,而我不知道如何找到.txt文件。 看到代码:

public void sendAccountActivationLinkToBuyer(String destinationEmail,
        String name) {

    // Destination of the email
    String to = destinationEmail;
    String from = "myEmail@gmail.com";

    try {
        Message message = new MimeMessage(mailSession);
        // From: is our service
        message.setFrom(new InternetAddress(from));
        // To: destination given
        message.setRecipients(Message.RecipientType.TO,
                InternetAddress.parse(to));
        message.setSubject("Registration succeded");
        // Instead of simple text, a .html template should be added here!
        message.setText(generateActivationLinkTemplate());

        Date timeStamp = new Date();
        message.setSentDate(timeStamp);

        Transport.send(message);

    } catch (MessagingException e) {
        throw new RuntimeException(e);
    }

}

private String generateActivationLinkTemplate() {
    String htmlText = "";

    try {
        File f = new File("");
        BufferedReader br = new BufferedReader(new InputStreamReader(f.getClass().getResourceAsStream("./web/emailActivationTemplate.txt")));
        String content = "";
        String line = null;

        while ((line = br.readLine()) != null) {
            content += line;
        }

    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    return htmlText;
}

第二种方法是给我的问题,我不能找到.txt文件。 我该怎么办? 我创建WebContent文件夹内的文件夹的网络,网络文件夹现在位于旁边的META-INF和WEB-INF(我认为这是一个适当的地方举行我的图片,模板,CSS ...)文件夹里面的我手工粘贴emailActivationTemplate.txt现在我需要从中读取数据。 有任何想法吗?

这是控制台输出:

重度:java.io.FileNotFoundException:\网络\ emailActivationTemplate.txt(系统找不到指定的路径)

Answer 1:

把emailActivationTemplate.txt在WEB-INF / classes中,并用得到它

BufferedReader br = new BufferedReader(new InputStreamReader(Thread.currentThread().getContextClassLoader().getResource("emailActivationTemplate.txt"));


Answer 2:

(String) System.getProperties().get("com.sun.aas.instanceRoot")


Answer 3:

emailActivationTemplate.txt应该存在内部classes的文件夹WEB-INF 。 如果你能有地方,你应该能够使用来阅读:

BufferedReader br = new BufferedReader(new InputStreamReader(this.getClass().getClassLoader().getResourceAsStream("/emailActivationTemplate.txt")));

尝试没有“/”开头,如果它不能正常工作。



文章来源: How to find the path to a .txt file in glassfish v3.0