views:

15

answers:

1

I have a web endpoint that displays an image of a string... When the following code is run (in tomcat) it spawns a java icon in the taskbar on OSX. Not sure if it is a problem, or whats going on. Looking for some sort of explination

@RequestMapping("/text/{text}")
public void textImage(HttpServletResponse response, @PathVariable("text") String text){
    response.setContentType("image/png");

    try{
        OutputStream os = response.getOutputStream();

        BufferedImage bufferedImage = new BufferedImage( (text.length()*10) , 14, BufferedImage.TYPE_INT_ARGB);
        Graphics2D g2d = bufferedImage.createGraphics();
        g2d.setBackground(Color.WHITE);
        g2d.setPaint(Color.BLACK);
        Font font = new Font("sansserif", Font.PLAIN, 12);
        g2d.setFont(font);
        g2d.drawString(text, 0, 12);

        ImageIO.write(bufferedImage, "png", os);
    } catch(Exception e) {
        // nothing we can do, simply log the error
        logger.error("Could not draw string: ", e);
    }
}
+1  A: 

By default when you use graphics, you get a window server connection (whether or not you're actually rendering to the screen). You can use headless mode to avoid it.

Nicholas Riley