Det virker fint nok på den bundlede Tomcat i Netbeans. Men hvis jeg uploader den på min webserver (resin) får jeg følgende FEJL:
<b>500 Servlet Exception</b>
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 _testserv__jsp._jspService(/testserv.jsp:8) 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)
Resin 2.1.16 (built Tue Feb 15 11:12:27 PST 2005)
/FEJL
Mangler jeg ikke nogle klasser?? og hvordan får jeg dem op på webserveren uden det fylder alt for meget??
Ok jeg er ikke så meget inde i det.. :D Hvordan finder jeg ud af java versionen?? hvis det ikke er den her : Java version = 1.4.2-p6-rune_04_sep_2004_18_46
Har prøvet med JPEG i stedet får, det giver samme fejl.
Kan jeg evt lave thumbs på en måde så jeg undgår problemet? Hvordan løses det, hvis du ved det?
// Read in original image to create thumbnail from File inFile = new File("/home/virtual/tropehjelm.dk/public_html/billeder/1/DSC00624.JPG"); BufferedImage bufferedImage = ImageIO.read(inFile); // Calculate scale so image fits in a square area of thumbNailSize - e.g. 160 int imageWidth = bufferedImage.getWidth(); int imageHeight = bufferedImage.getHeight(); double scale = 0.1;
// Now create thumbnail AffineTransform affineTransform = AffineTransform.getScaleInstance(scale,scale); AffineTransformOp affineTransformOp = new AffineTransformOp(affineTransform,null); BufferedImage scaledBufferedImage = affineTransformOp.filter(bufferedImage,null); // Now do fix to get rid of silly spurious line
int scaledWidth = scaledBufferedImage.getWidth(); int scaledHeight = scaledBufferedImage.getHeight();
int expectedWidth = (int)(imageWidth * scale); int expectedHeight = (int)(imageHeight * scale); if ( scaledWidth > expectedWidth || scaledHeight > expectedHeight ) scaledBufferedImage = scaledBufferedImage.getSubimage( 0,0,expectedWidth,expectedHeight); // Now write out scaled image to file ImageIO.write(scaledBufferedImage,"JPG",new File("/home/virtual/tropehjelm.dk/public_html/billeder/1/Thumb.JPG"));
Jeg har lavet en for lykke som laver thumbnails af aller filerne i en mappe
KODE:
String id = request.getParameter("galleriid"); String siden = "/home/virtual/tropehjelm.dk/public_html/billeder/"+id;
File mDir = new File(siden+"/thumbs"); if (mDir.mkdir()==true) out.write("Mappen Thumbs blev lavet"); else out.write("mappen Thumbs blev lavet");
File mappe = new File(siden) ; // mappen siden er i File[] filer = mappe.listFiles();
//thumbnail
String tpath = siden+"/thumbs/"; for (int i=0; i<filer.length; i++) {
File f = filer[i]; if (f.isDirectory()); else { // Read in original image to create thumbnail from File inFile = new File(siden+"/"+f.getName()); BufferedImage bufferedImage = ImageIO.read(inFile); // Calculate scale so image fits in a square area of thumbNailSize - e.g. 160 int imageWidth = bufferedImage.getWidth(); int imageHeight = bufferedImage.getHeight(); double scale = 0.1;
// Now create thumbnail AffineTransform affineTransform = AffineTransform.getScaleInstance(scale,scale); AffineTransformOp affineTransformOp = new AffineTransformOp(affineTransform,null); BufferedImage scaledBufferedImage = affineTransformOp.filter(bufferedImage,null); // Now do fix to get rid of silly spurious line
int scaledWidth = scaledBufferedImage.getWidth(); int scaledHeight = scaledBufferedImage.getHeight();
int expectedWidth = (int)(imageWidth * scale); int expectedHeight = (int)(imageHeight * scale); if ( scaledWidth > expectedWidth || scaledHeight > expectedHeight ) scaledBufferedImage = scaledBufferedImage.getSubimage( 0,0,expectedWidth,expectedHeight); // Now write out scaled image to file ImageIO.write(scaledBufferedImage,"JPG",new File(tpath+f.getName())); } }
/KODE
Det virker fint nok. Men efter jeg havde kørt siden nogle gange fik jeg den her fejl:
FEJL
500 Servlet Exception
java.lang.OutOfMemoryError
Resin 2.1.16 (built Tue Feb 15 11:12:27 PST 2005)
/FEJL
Hvad skal jeg gøre for at undgå den fejl?? kan/skal jeg tømme memoryen efter hvert gennemløb??
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.