1
protected void executeInternal(JobExecutionContext context) throws JobExecutionException 
{
  System.out.println("Sending Birthday Wishes... ");

   try
   {
            for(int i=0;i<maillist.length;i++)
            {   


            Email email = new Email();
            email.setFrom("spv_it@yahoo.com");
            email.setSubject("Happy IndependenceDay");
            email.setTo(maillist[i]);

            email.setText("<font color=blue><h4>Dear Users,<br><br><br>Wish you a Happy Independence Day!<br><br><br>Regards,<br>Penna Cement Industries Limited</h4></font>");
            byte[] data = null;
            ClassPathResource img = new ClassPathResource("newLogo.gif");
            InputStream inputStream = img.getInputStream();
            data = new byte[inputStream.available()];
            while((inputStream.read(data)!=-1));

            Attachment attachment = new Attachment(data, "HappyBirthDay","image/gif", true);
            email.addAttachment(attachment);

            emailService.sendEmail(email);
        }


   }
   catch (MessagingException e)
   {
    e.printStackTrace();
   }
   catch (Exception e)
   {
    e.printStackTrace();
   }

 }

これは私が得ているエラーです:

java.io.FileNotFoundException: class path resource [newLogo.gif] cannot be opened because it does not exist
at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:135)
at com.mail.schedular.BirthdayWisherJob.executeInternal(BirthdayWisherJob.java:55)
at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:66)
at org.quartz.core.JobRunShell.run(JobRunShell.java:223)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549)
4

3 に答える 3

0

ファイルを src フォルダー内に配置する必要があると思います。ファイルがある場合は、src ディレクトリ内のディレクトリの下にあるかどうかを確認してください。

次に、以下の詳細のように正しい場所を指定します src[dir]----->newLogo.gif

ClassPathResource img = new ClassPathResource("newLogo.gif");

または、src[dir]----->images[dir]---->newLogo.gif

ClassPathResource img = new ClassPathResource("/images/newLogo.gif");
于 2013-08-16T07:26:56.373 に答える
0

ジョブが別のクォーツ スレッドで実行されているため、このエラーが発生しました。ファイルnewLogo.gifを jar の外に配置し、次のコマンドを使用してロードすることをお勧めします。 Thread.currentThread().getContextClassLoader().getResource("classpath:image/newLogo.gif");

于 2020-10-22T13:45:50.363 に答える