Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Email sending failed: Could not load or process image / 7 сообщений из 7, страница 1 из 1
20.04.2012, 14:04:13
    #37763004
rus_sun
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Email sending failed: Could not load or process image
Разрабатываю 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
20.04.2012, 14:19:34
    #37763048
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Email sending failed: Could not load or process image
Может с многопоточностью связано?
...
Рейтинг: 0 / 0
20.04.2012, 14:27:37
    #37763066
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Email sending failed: Could not load or process image
Может stackatrce стоит почитать? И вложеные исключения.
...
Рейтинг: 0 / 0
20.04.2012, 14:30:04
    #37763072
rus_sun
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Email sending failed: Could not load or process image
Blazkowicz,

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

есть подозрение, что файлы просто не удаляются. Видимо - я их неправильно удаляю
...
Рейтинг: 0 / 0
20.04.2012, 14:35:46
    #37763090
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Email sending failed: Could not load or process image
Скачайте исходники и подебажте, вот откуда эксепшн выкидывается
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
20.04.2012, 15:52:41
    #37763346
rus_sun
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Email sending failed: Could not load or process image
Blazkowicz,

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


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


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


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