Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> glassfish && BufferedImage, под Томкатом работает, а тут нет 
:(
    Опции темы
maslyak
Дата 29.4.2008, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 23.1.2008

Репутация: нет
Всего: нет



доброй ночи, есть простой код servlet, который отлично работает под томкатом - выдает картинку с IP запросившего:
Код

public class IpRanger extends HttpServlet
{
    private static final String CONTENT_TYPE = "image/gif";
    
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
    {
        response.setContentType(CONTENT_TYPE);
        ServletOutputStream out = response.getOutputStream();
        ImageIO.write(drawGraphics(request.getRemoteAddr()), "gif", out);
    }

    private BufferedImage drawGraphics(String ip)
    {
        BufferedImage imgBuff = new BufferedImage(350, 19, BufferedImage.TYPE_INT_RGB);
        Graphics2D g2 = imgBuff.createGraphics();

        g2.setColor(Color.red);
        g2.drawString(ip, 80, 16);

        return imgBuff;
    }
}

пробую этот код запустить под glassfish последним - выдает в поток вместо рисунка 0 байт, я попробывал для теста еще упростить код - выдавать не в ответ, а записывать в файл
Код

public class Test
{
    private static final String CONTENT_TYPE = "image/gif";

    public static void main(String[] args) throws Exception
    {

        FileOutputStream file = new FileOutputStream("junk");
        BufferedImage img = drawGraphics("hello");
        ImageIO.write(img, "gif", file);
        file.close();
    }

    private static BufferedImage drawGraphics(String ip)
    {
        BufferedImage imgBuff = new BufferedImage(350, 19, BufferedImage.TYPE_INT_RGB);
        Graphics2D g2 = imgBuff.createGraphics();

        g2.setColor(Color.red);
        g2.drawString(ip, 80, 16);

        return imgBuff;
    }
}

в итоге, если этот файл скомпилить как J2SE - то все отлично, он заполняет файл рисунком. а вот если запустить под glassfish, то в файл пишется 0 байт. Смотрел логи сервера - ничего нет
Что ему не нравится?
PM MAIL   Вверх
maslyak
Дата 29.4.2008, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 23.1.2008

Репутация: нет
Всего: нет



кажется я понял в чем дело  smile 
Код

for(String str : javax.imageio.ImageIO.getWriterMIMETypes())
        {
            out.println(str);
        }

я запускал glassfish под J2SE 5.0 и там этот код не выдавал тип gif, поэтому я изменил тип в методе ImageIO.write() на png и оно заработало smile остается гадать, почему же он не выдавал никаких exception, когда я с него требовал кодировать в gif?
PM MAIL   Вверх
kkorsakoff
Дата 30.4.2008, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.10.2005
Где: Санкт-Петербург

Репутация: 6
Всего: 14



А он и не должен согласно javadoc.
Зато должен
Код

Returns:
false if no appropriate writer is found. 

PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.1059 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.