Billede v.hj.a. JSP
HejJeg sidder og roder med Jacob Nordfalks bog "webprogrammering med JSP". I bogens kap2 er et lille eksempel på at konstruere et billede med jsp-kode. Filen kan hentes her:
http://javabog.dk/JSP/kode/kapitel_02/billede.jsp
<%@ page import="java.awt.*,java.awt.image.*,com.sun.image.codec.jpeg.*" %>
<%@ page contentType="image/jpeg" %>
<%
// opret billede <title>Billede</title>
BufferedImage billede = new BufferedImage(300, 100, BufferedImage.TYPE_INT_RGB);
Graphics2D g = billede.createGraphics();
//g.setRenderingHint( // s� evt. tegnevink til trappeudj�ning (antialias)
// RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
// udfyld baggrund
g.setColor(Color.white);
g.fillRect(0,0,300, 100);
// tegn ramme
g.setColor(Color.red);
g.drawRect(15, 15, 270, 70);
// tegn nogle andre ting
g.setColor(Color.black);
g.fillOval(5,20,250,30);
g.setColor(Color.green);
g.drawLine(10,10,280,40);
// skriv tekst, ud fra parameter eller sessionsattribut "billedtekst"
String tekst = request.getParameter("billedtekst");
if (tekst==null) tekst = (String) session.getAttribute("billedtekst");
if (tekst==null) tekst = "Hej grafiske verden!"; // standardtekst
g.drawString(tekst,50,40);
// f�dig med at tegne, frigiv grafik-objektet
g.dispose();
// og konvert� billede til JPG-format og send billedet
ServletOutputStream sos = response.getOutputStream();
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(sos);
// S� kvaliteten af det genererede JPG-billede
JPEGEncodeParam param = JPEGCodec.getDefaultJPEGEncodeParam(billede);
param.setQuality(0.90f,false); // 0.75 er standardkvalitet
encoder.setJPEGEncodeParam(param);
encoder.encode(billede);
%>
Jeg har forsøgt at køre filen lokalt på min pc ved Tomcat. Jeg får fejlmeddelelsen:
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
org.apache.jsp.billede_jsp._jspService(billede_jsp.java:95)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)..... osv...
Ved at lægge filen ud på min hjemmeside (www.henrikhartig.dk/billede.jsp) får jeg en anderledes fejlmeddelse:
500 Servlet Exception
java.lang.NoClassDefFoundError
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:141)
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:62)
at java.awt.image.BufferedImage.createGraphics(BufferedImage.java:1041)
at _billede__jsp._jspService(/billede.jsp:7)
at com.caucho.jsp.JavaPage.service(JavaPage.java:75)
at com.caucho.jsp.Page.subservice(Page.java:506)
at com.caucho.server.http.FilterChainPage.doFilter(FilterChainPage.java:182)
at com.caucho.server.http.Invocation.service(Invocation.java:315)
at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:135)
at com.caucho.server.http.RunnerRequest.handleRequest(RunnerRequest.java:346)
at com.caucho.server.http.RunnerRequest.handleConnection(RunnerRequest.java:274)
at com.caucho.server.TcpConnection.run(TcpConnection.java:139)
at java.lang.Thread.run(Thread.java:534)
Håber nogen kan hjælpe mig.
/henrik
