Проект Maven ищет несуществующий путь в продукте - PullRequest
0 голосов
/ 05 мая 2020

Я использую файл конфигурации в своем программном обеспечении, у меня правильный файл root (не локальный) src/main/java/pdf/factory/fop.xconf. После компиляции кода он локально искал файл в fopBaseUri=C:\Users\user\Documents\software\local\target\data\bin\content\sftw.web-0.0.0-SNAPSHOT.war\WEB-INF\classes\pdf\fopfactorybasedir\fop.xconf

У меня не было этого пути, только было C:\Users\user\Documents\software\local\target\data\bin, поэтому я создал остальную часть пути, и он работал так должен ..

однако, когда я развернул, это не сработало, возможно потому, что путь не существует после компиляции, и он стирает все это при установке mvn.

как я могу заставить его смотреть в путь или заставить файл быть тем, который я использую (не локальный в src / ...)

вот мой код:

@ApplicationScoped
public class FopFactoryService {
    private static final String ROOT_PATH = "/pdf/fopfactorybasedir/fop.xconf";
    private final FopFactory fopFactory;
    private final FOUserAgent foUserAgent;
    private final TransformerFactory transformerFactory;

    public FopFactoryService() throws URISyntaxException, IOException, SAXException {
        final URI uri = FopFactoryService.class.getResource(ROOT_PATH).toURI();
        final File f = new File(uri.getPath());
        LOG.info("fopBaseUri={}", f);
        fopFactory = FopFactory.newInstance(f);
        foUserAgent = fopFactory.newFOUserAgent();
        transformerFactory = TransformerFactory.newInstance();
    }

что я отсутствует?

1 Ответ

0 голосов
/ 14 мая 2020

Теперь файл может находиться на сервере после сборки maven.

Путь vfs является внутренним, виртуальная файловая система Jboss создает для себя, но только внутри памяти, используемой jboss. Новый File () смотрит на реальное местоположение жесткого диска. Такого пути нет, потому что он там только виртуальный. Это обычная проблема, начиная с Jboss версии 5, поэтому решение проходит через этот вопрос, ответ на который здесь: Не получается абсолютный путь к файлу из ресурсов , если вы получаете java.lang.ClassCastException: java.io.FileInputStream cannot be cast to org.jboss.vfs.VirtualFile, просто попробуйте это без преобразования. надеюсь, это кому-нибудь поможет.

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