2014-11-25 5 views
0

Это мой первый сервлет для создания и отображения изображения клиенту,Генерация изображения с помощью сервлетов

Но Существует ошибка компиляции времени в указанной секции по commect.

public class DynamicImage extends HttpServlet { 

@Override 
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { 

    response.setContentType("image/jpeg"); 

    //create image 
    int width = 200; 
    int height = 30; 
    BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); 

    //get drawing context 
    Graphics2D g = (Graphics2D) image.getGraphics(); 
    g.setColor(Color.GRAY); 
    g.fillRect(0, 0, width, height); 

    //draw a string 
    g.setColor(Color.WHITE); 
    g.setFont(new Font("Dialog", Font.PLAIN, 14)); 
    g.drawString("My String!", 10, height/2 + 4); 

    //draw a border 
    g.setColor(Color.BLACK); 
    g.drawRect(0, 0, width - 1, height - 1); 

    //dispose context 
    g.dispose(); 

    //send back image to the client 
    ServletOutputStream sos = response.getOutputStream(); 
    com.sun.image.codec.jpeg.JPEGImageEncoder encoder = JPEGCodec // Compile Time Error, cant find JPEGCodec 

    } 
} 

Мой IDE (Netbeans) не могу найти и импортировать JPEGCodec, Что такое решение?

+4

классы из пакета com.sun не документированы, и не должны быть использованы. Используйте общедоступный API, который может записывать изображения в формате JPEG, например ImageIO. –

+0

Не рекомендуется создавать изображения в сервлетах. Изображение должно уже существовать в файловой системе или в базе данных; не только неэффективно это делать в сервлете, но на некоторых серверах нет графических карт или GraphicsEnvironment, поэтому ваши графические операции могут завершиться неудачно. – ControlAltDel

+0

@ControlAltDel Я могу придумать довольно много вариантов использования для создания сервера изображений. Изготовление изображений на стороне сервера не является чем-то необычным. Чтобы обработать не иметь графическую систему, просто установите свойство для режима безглавых: -Djava.awt.headless = true – Michael

ответ

0

Необходимо загрузить файл rt.jar и добавить его в свой путь к классу.
Загрузить его с here.
Если выше ссылка не работает, посетите here

0

Посмотрите на this answer

Я бы рекомендовал не использовать этот класс. Это не что иное, как головная боль.

Смежные вопросы