Java-PDF сохранен, но Java видит только старый PDF - PullRequest
0 голосов
/ 25 ноября 2018

У меня проблема с Java.Я хочу создать PDF-файл, используя itextpdf в Java Spring.Далее я хочу отправить этот PDF, используя электронную почту.Я запускаю Java-приложение и отправляю электронную почту, используя REST API.Моя почта отправлена ​​правильно, но вложение - старый PDF.Это означает, что я делаю запрос от API, и мой PDF создается в Java и отправлять по электронной почте.Мой новый PDF создан Java, и я вижу это, но по электронной почте Java отправить старый PDF, который был создан, прежде чем снова запустить приложение.

Моя функция создавать PDF:

public static final String DEST = "src/main/resources/sample2.pdf";
    public void createPDF(User user) throws IOException, DocumentException {
    File file = new File(DEST);
    file.getParentFile().mkdirs();
    Document document = new Document();
    PdfWriter.getInstance(document, new FileOutputStream(DEST));
    document.open();
    document.add(new Paragraph(user.getEmail()+"aaaaaa"));
    document.close();
}

Моя функция отправлять:

public void sendResults(User user)
      throws MessagingException, FileNotFoundException, DocumentException {
    MimeMessage message = emailSender.createMimeMessage();
    MimeMessageHelper helper = new MimeMessageHelper(message, true);
    helper.setSubject("test");
    helper.setText("test");
    helper.setTo(user.getEmail());
    helper.setFrom("mail@gmail.com");
    helper.addAttachment("sample2.pdf", new 
    ClassPathResource("sample2.pdf"));
    emailSender.send(message);
}

У меня есть два запроса: * создать этот PDF и *отправить письмо с pdf

PDF по умолчанию сохранить в папке «ресурсы».Все отлично, но, несмотря на то, что в java после запроса «создать PDF» появляется новый PDF, метод «отправить почту» отправляет старый pdf: / Я не знаю, что не так.Помоги мне.

1 Ответ

0 голосов
/ 25 ноября 2018

Пожалуйста, попробуйте этот метод загрузки файла из папки ресурсов в Java.

ClassLoader classLoader = getClass().getClassLoader(); File file = new File(classLoader.getResource("sample2.pdf").getFile());

Для приложений на основе Spring вы можете воспользоваться классом ResourceUtils.

 File file = ResourceUtils.getFile("classpath:xyz.xml")

или добавьте поле с аннотацией @Value к вашему бобу:

 @Value("classpath:xyz.xml")
 private Resource resource;

А затем просто:

 resource.getInputStream();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...