org.apache.catalina.core.StandardWrapperValve invoke
INFO: La servlet SlideServlet est actuellement indisponible
package com.pfe.slide; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.Closeable; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.net.URLDecoder; //import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class SlideServlet { // Constants ---------------------------------------------------------------------------------- private static final int DEFAULT_BUFFER_SIZE = 10240; // 10KB. // Properties --------------------------------------------------------------------------------- public static File lastSlide=null ; // Actions ------------------------------------------------------------------------------------ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { File[] list = new File("C:\\images").listFiles(); File inter; for( int i=(list.length-1); i>0; i--) { for( int j=0; j list[j+1].lastModified()) { inter= list[j]; list[j]= list[j+1]; list[j+1]= inter; } } } lastSlide= list[list.length-1]; // Check if file actually exists in filesystem. if (!lastSlide.exists()) { response.sendError(HttpServletResponse.SC_NOT_FOUND); // 404. !!!!!!!! return; } //-------------------------------------------------------------------------------- // Init servlet response. response.reset(); response.setBufferSize(DEFAULT_BUFFER_SIZE); response.setContentType("image/png"); response.setHeader("Content-Length", String.valueOf(lastSlide.length())); response.setHeader("Content-Disposition", "inline; filename="" + lastSlide.getName() + """); // Prepare streams. BufferedInputStream input = null; BufferedOutputStream output = null; try { // Open streams. input = new BufferedInputStream(new FileInputStream(lastSlide), DEFAULT_BUFFER_SIZE); output = new BufferedOutputStream(response.getOutputStream(), DEFAULT_BUFFER_SIZE); // Write file contents to response. byte[] buffer = new byte[DEFAULT_BUFFER_SIZE]; int length; while ((length = input.read(buffer)) > -1) { output.write(buffer, 0, length); } output.flush(); } finally { // Gently close streams. close(output); close(input); } } // Helpers (can be refactored to public utility class) ---------------------------------------- private static void close(Closeable resource) { if (resource != null) { try { resource.close(); } catch (IOException e) { // Do your thing with the exception. Print it, log it or mail it. e.printStackTrace(); } } } }
http://localhost:8080/Slide/image.jsp
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionpackage com.pfe.slide; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.Closeable; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class SlideServlet extends HttpServlet implements Runnable { // Constants ---------------------------------------------------------------------------------- private static final int DEFAULT_BUFFER_SIZE = 10240; // 10KB. // Properties --------------------------------------------------------------------------------- //private String imagePath; private Thread t; public static int count=0; public static File lastSlide ; // Actions ------------------------------------------------------------------------------------ public void init(ServletConfig config) throws ServletException { super.init(config); t = new Thread(this); t.setPriority(Thread.MIN_PRIORITY); t.start(); System.out.println("deamon started"); // Define base path somehow. You can define it as init-param of the servlet. // this.imagePath = "/images"; } //------------------------------------------------------------------------------------------ public void run() { try { while (true) { System.out.println("deamon working..."); File[] list = new File("/images").listFiles(); if (anyUpdate(list)){ lastSlide= list[list.length-1]; } Thread.sleep(2000); } } catch (InterruptedException e) { System.out.println("deamon stopped");} } //-------------------------------------------------------------------------- private static boolean anyUpdate(File[] list){ if (list.length>=count) {count++; } return true ; } //---------------------------------------------------------------------------------- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Init servlet response. response.reset(); response.setBufferSize(DEFAULT_BUFFER_SIZE); response.setContentType("image/png"); response.setHeader("Content-Length", String.valueOf(lastSlide.length())); response.setHeader("Content-Disposition", "inline; filename="" + lastSlide.getName() + """); // Prepare streams. BufferedInputStream input = null; BufferedOutputStream output = null; try { // Open streams. input = new BufferedInputStream(new FileInputStream(lastSlide), DEFAULT_BUFFER_SIZE); output = new BufferedOutputStream(response.getOutputStream(), DEFAULT_BUFFER_SIZE); // Write file contents to response. byte[] buffer = new byte[DEFAULT_BUFFER_SIZE]; int length; while ((length = input.read(buffer)) > 0) { output.write(buffer, 0, length); } } finally { // Gently close streams. close(output); close(input); } } // Helpers (can be refactored to public utility class) ---------------------------------------- private static void close(Closeable resource) { if (resource != null) { try { resource.close(); } catch (IOException e) { // Do your thing with the exception. Print it, log it or mail it. e.printStackTrace(); } } } }
n'est pas encore fonctionnel
package com.pfe.slide; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.Closeable; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class SlideServlet extends HttpServlet implements Runnable { // Constants ---------------------------------------------------------------------------------- private static final int DEFAULT_BUFFER_SIZE = 10240; // 10KB. // Properties --------------------------------------------------------------------------------- //private String imagePath; private Thread t; public static int count=0; public static File lastSlide ; // Actions ------------------------------------------------------------------------------------ public void init(ServletConfig config) throws ServletException { super.init(config); t = new Thread(this); t.setPriority(Thread.MIN_PRIORITY); t.start(); System.out.println("deamon started"); // Define base path somehow. You can define it as init-param of the servlet. // this.imagePath = "/images"; } //------------------------------------------------------------------------------------------ public void run() { try { while (true) { System.out.println("deamon working..."); File[] list = new File("C:\\images").listFiles(); if (anyUpdate(list)){ lastSlide= list[list.length-1]; } Thread.sleep(10000); } } catch (InterruptedException e) { System.out.println("deamon stopped");} } //-------------------------------------------------------------------------- private static boolean anyUpdate(File[] list){ boolean update = (list.length > count); count = list.length; return update; } //---------------------------------------------------------------------------------- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Init servlet response. response.reset(); response.setBufferSize(DEFAULT_BUFFER_SIZE); response.setContentType("image/png"); response.setHeader("Content-Length", String.valueOf(lastSlide.length())); response.setHeader("Content-Disposition", "inline; filename="" + lastSlide.getName() + """); // Prepare streams. BufferedInputStream input = null; BufferedOutputStream output = null; try { // Open streams. input = new BufferedInputStream(new FileInputStream(lastSlide), DEFAULT_BUFFER_SIZE); output = new BufferedOutputStream(response.getOutputStream(), DEFAULT_BUFFER_SIZE); // Write file contents to response. byte[] buffer = new byte[DEFAULT_BUFFER_SIZE]; int length; while ((length = input.read(buffer)) > -1) { output.write(buffer, 0, length); } output.flush(); } finally { // Gently close streams. close(output); close(input); } } // Helpers (can be refactored to public utility class) ---------------------------------------- private static void close(Closeable resource) { if (resource != null) { try { resource.close(); } catch (IOException e) { // Do your thing with the exception. Print it, log it or mail it. e.printStackTrace(); } } } }
java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory
at org.apache.jasper.JspC.<clinit>(JspC.java:97)
Caused by: java.lang.ClassNotFoundException: org.apache.juli.logging.LogFactory
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 1 more
Exception in thread "main"
deamon started
deamon working...
16 mai 2010 12:39:06 org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: "Servlet.service()" pour la servlet SlideServlet a généré une exception
java.lang.NullPointerException
at com.pfe.slide.SlideServlet.doGet(SlideServlet.java:79)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
deamon working...
deamon working...
deamon working...
deamon working...
deamon working...
deamon working...
deamon working...
deamon working...
deamon working...
deamon working...
deamon working...
deamon working...