Изображения из папки ресурсов не находят пути в банке - PullRequest
0 голосов
/ 29 апреля 2019

с использованием Apache FOP и Springboot для создания PDF. Pdf содержит изображения, которые загружаются из папки / images в разделе ресурсов. Это нормально работает при локальной настройке затмения, но после упаковки в виде jar путь не разрешается

FopFactory fopFactory = FopFactory.newInstance(new File(".").toURI());
            FOUserAgent foUserAgent = fopFactory.newFOUs

    erAgent();
                ByteArrayOutputStream outputStream = new 
     ByteArrayOutputStream();
                Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, 
     foUserAgent, outputStream);
                TransformerFactory factory = 
     TransformerFactory.newInstance(XSL_LOADER, null);
                 factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
                Transformer transformer = factory.newTransformer(new 
     StreamSource(getClass().getResourceAsStream(XSL_PATH_ROOT)));

Способ определения пути:

private String getImagePath(String icon) {
    if (icon != null) {
        try {
            URL resourceURL = ResourceUtils.getURL(
                    new StringBuilder().append("classpath:images/").append(icon).append(PNG).toString());
            if (ResourceUtils.isJarURL(resourceURL)) {
                URL extractedJarURL = ResourceUtils.extractJarFileURL(resourceURL);
                return extractedJarURL.getPath();
            } else {
                return resourceURL.getPath();
            }
        } catch (FileNotFoundException | MalformedURLException e) {
            e.getStackTrace();
        }
    }
    return null;
}

XSL код:

<xsl:attribute name="src"><xsl:value-of select="iconName" /></xsl:attribute>

Получение ошибки как ОШИБКА org.apache.fop.apps.FOUserAgent - изображение не найдено. URI: файл: /usr/tomcat/banking-app/banking-app.jar! / BOOT-INF / classes! /Images/ICON1.png. (Контекстная информация недоступна)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...