log4j не работает на сервере tomcat8 с файлом log4j.properties

Я пытаюсь конвертировать некоторые PDF-файлы в PNG с помощью Ghost4j. Для работы этой библиотеки нужен log4j, поэтому я добавил в свои библиотеки также log4j.

Поскольку мое приложение представляет собой динамический веб-проект, я добавил библиотеки в папку WEB-INF/lib.

Когда я пытался запустить приложение на моем локальном сервере tomcat8, оно регистрировало некоторые предупреждения, такие как:

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.

Итак, просматривая веб-страницы, я обнаружил, что в моем приложении отсутствует файл log4j.properties. Таким образом, я создал и добавил файл log4j.properties в WEB-INF/classes (как предлагалось на некоторых других постах stackru). Таким образом, с этим исправлением приложение на моем сервере локатора tomcat8 работало без сбоев.

Хотя, когда я пытался развернуть его на удаленном сервере tomcat8, приложение не работает. Проблема в том, что он не создает никаких исключений, он просто прерывает его работу. С файлом log4j.properties или без него на удаленном сервере tomcat8 не было никакой разницы: он просто перестал работать с той же "строкой кода", в которой ранее на моем локальном сервере регистрировались те предупреждения, которые я писал ранее.

Любая помощь приветствуется.

PS: код для преобразования довольно прост. Я отправляю это, чтобы закончить мой вопрос:

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());
        }
    }

1 ответ

Решение

В конце концов я нашел решение сам.

Проблема никак не связана с log4j, но она не работает, потому что на сервере отсутствует Ghostscript.

После установки Ghostscript на сервере все работало нормально.

Другие вопросы по тегам