powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Email sending failed: Could not load or process image
7 сообщений из 7, страница 1 из 1
Email sending failed: Could not load or process image
    #37763004
rus_sun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разрабатываю web-приложение под SEAM JBOSS. Создал таймер автоматической рассылки почты, использую технологии SEAM. К письмам прикрепляю файлы pdf и xls. Причем в xls вставляю картинку, которую генерирую с помощью JFreeChart.
Такая проблема. Когда таймер срабатывает в первый раз, письма отправляются с вложениями успешно. Когда таймер срабатывает во второй раз, письма не отправляются из-зи ошибки
Код: css
1.
Email sending failed: Could not load or process image


Т.е. проблема в xls файле с вложением картинки.

Вот код

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
<m:attachment fileName="Diagram.xls">
            <e:workbook >
                <e:worksheet >
                    <e:image startRow="1" startColumn="1"
                             URI="#{backBean.imageURI}"/>
                </e:worksheet>
           </e:workbook>
</m:attachment>



Java:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
public String imageURI() {
       
        // create dataSet
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        ...
        // create chart
        JFreeChart chart = ChartFactory.createLineChart(
                "Calls/Staff", // chart title
                "Date", // domain axis label
                "Count", // range axis label
                dataset, // data
                PlotOrientation.VERTICAL, // orientation
                true, // include legend
                true, // tooltips?
                false // URLs?
                );
                
        // save the chart into the image
        String fileUri = null;
        try{
            File file = File.createTempFile("report","jpg");
            ChartUtilities.saveChartAsJPEG(file, chart, 1000, 400);
            fileUri = file.toURI().toString();            
        }catch(IOException e){            
            e.printStackTrace();
        }
        return fileUri;
    }



После отправления почты временные файлы jpg удаляю:

Код: java
1.
2.
3.
4.
5.
6.
7.
 // удаляем временные файлы после отправки мейла
        try {            
            File file;           
                file = new File(new URI(fileURI));
                file.delete();            
        } catch (Exception e) {
        }
...
Рейтинг: 0 / 0
Email sending failed: Could not load or process image
    #37763048
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может с многопоточностью связано?
...
Рейтинг: 0 / 0
Email sending failed: Could not load or process image
    #37763066
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может stackatrce стоит почитать? И вложеные исключения.
...
Рейтинг: 0 / 0
Email sending failed: Could not load or process image
    #37763072
rus_sun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

stactrace пуст, видимо исключения там где я их не ловлю
...
Рейтинг: 0 / 0
Email sending failed: Could not load or process image
    #37763073
rus_sun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ник,

есть подозрение, что файлы просто не удаляются. Видимо - я их неправильно удаляю
...
Рейтинг: 0 / 0
Email sending failed: Could not load or process image
    #37763090
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скачайте исходники и подебажте, вот откуда эксепшн выкидывается
http://grepcode.com/file/repository.jboss.org/maven2/org.jboss.seam/jboss-seam-excel/2.1.1.GA/org/jboss/seam/excel/jxl/JXLExcelWorkbook.java
Ну и с выводом ошибок надо что-то решать. Как вы дальше без стектрейсов жить будете?
...
Рейтинг: 0 / 0
Email sending failed: Could not load or process image
    #37763346
rus_sun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

Спасибо, так конечно делать правильно, буду учиться.
Проблему решил. Дело было действительно во временных файлах, система добавляет к имени такого файла еще timestamp, который в URI не отображается, в результате, я их видимо не удалял.
Теперь заменил строку
Код: java
1.
File.createTempFile("chart","jpg"); 


на
Код: java
1.
new File(System.getProperty("java.io.tmpdir")+"chart.jpg"); 


и все заработало!
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Email sending failed: Could not load or process image
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]