2017-07-26 3 views
0

Ich versuche, einige PDF-Dateien in PNGs mit Ghost4j zu konvertieren. Diese Bibliothek benötigt log4j zum Arbeiten, also habe ich zu meinen Bibliotheken auch log4j hinzugefügt.Log4j funktioniert nicht auf tomcat8 Server mit log4j.properties Datei

Da meine Anwendung ein dynamisches Webprojekt ist, habe ich die Bibliotheken in den Ordner WEB-INF/lib eingefügt.

Als ich versuchte, die Anwendung auf meinem lokalen tomcat8 Server laufen zu lassen, wurde die Anmeldung einige Warnungen wie:

log4j:WARN No appenders could be found for logger (org.ghost4j.Ghostscript). 
log4j:WARN Please initialize the log4j system properly. 
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. 

Also, das Surfen im Internet, fand ich, dass ich die log4j.properties in fehlte Datei meine Bewerbung. Daher habe ich die Datei log4j.properties in WEB-INF/classes erstellt und hinzugefügt (wie in einigen anderen Posts von stackoverflow vorgeschlagen). Mit diesem Fix lief die Anwendung auf meinem locat tomcat8 Server reibungslos.

Während ich versuchte, es auf dem Remote-Tomcat8-Server bereitzustellen, funktioniert die Anwendung nicht. Das Problem ist, dass es keine Ausnahme irgendwelcher Art erzeugt, es unterbricht nur seine Arbeit. Mit oder ohne die Datei log4j.properties, auf dem Remote-Tomcat8-Server gab es keinen Unterschied: es hört einfach auf, in der gleichen "Codezeile" zu laufen, in der zuvor auf meinem lokalen Server diese Warnungen protokolliert wurden, die ich zuvor geschrieben habe.

Jede Hilfe wird geschätzt.

S.S .: Der Code für die Konvertierung ist ziemlich einfach. Ich poste es, um meine Frage zu vervollständigen:

private void createImages(String machine, String fileName){ 
     LOGGER.warning("started creating images"); 
     try{ 
      PDFDocument document = new PDFDocument(); 
      document.load(new File(DOCS_DIR + machine + "/" + fileName + ".pdf")); 

      String commonPath = IMGS_DIR + machine + "/" + fileName + "/"; 
      Path path = Paths.get(new File(commonPath).getPath()); 
      if(Files.notExists(path, LinkOption.NOFOLLOW_LINKS)){ 
       new File(commonPath).mkdirs(); 
      } 
      SimpleRenderer renderer = new SimpleRenderer(); 
      renderer.setResolution(300); 
      renderer.setAntialiasing(SimpleRenderer.OPTION_ANTIALIASING_HIGH); 

      LOGGER.warning("IT STOPS HERE!!"); 
      List<Image> images = renderer.render(document); // this is the line in which the execution of the program stops.. 
      LOGGER.warning("pdf pages are: " + images.size()); 
      for (int i = 0; i < images.size(); i++) { 
       Image img = images.get(i); 
       Image scaledImg = img.getScaledInstance(1200, -1, Image.SCALE_SMOOTH); 
       BufferedImage newImage = new BufferedImage(scaledImg.getWidth(null), scaledImg.getHeight(null), BufferedImage.TYPE_INT_ARGB); 
       Graphics2D g = newImage.createGraphics(); 
       g.drawImage(scaledImg, 0, 0, null); 
       g.dispose(); 
       String extension = ".png"; 
       String imgName = commonPath + (i + 1) + extension; 
       LOGGER.warning("creating img n: " + (i+1) + " - creating img in folder: " + imgName); 
       ImageIO.write((RenderedImage) newImage, "png", new File(imgName)); 
      } 

      LOGGER.warning("finished creating images!"); 
     } catch(FileNotFoundException e){ 
      LOGGER.warning("ERROR DOCUMENT SERVICE -- FileNotFoundException"); 
      LOGGER.warning(e.printStackTrace()); 
     } catch (IOException e) { 
      LOGGER.warning("ERROR DOCUMENT SERVICE -- IOException"); 
      LOGGER.warning(e.printStackTrace()); 
     } catch (RendererException e) { 
      LOGGER.warning("ERROR DOCUMENT SERVICE -- RendererException"); 
      LOGGER.warning(e.printStackTrace()); 
     } catch (DocumentException e) { 
      LOGGER.warning("ERROR DOCUMENT SERVICE -- DocumentException"); 
      LOGGER.warning(e.printStackTrace()); 
     } catch (Exception e){ 
      LOGGER.warning("ERROR DOCUMENT SERVICE -- Exception"); 
      LOGGER.warning(e.printStackTrace()); 
     } 
    } 

Antwort

0

Am Ende fand ich die Lösung selbst.

Das Problem war in keiner Weise mit log4j verwandt, aber es funktionierte nicht, weil Ghostscript auf dem Server fehlte.

Nach der Installation von Ghostscript auf dem Server hat alles funktioniert.

Verwandte Themen