Ошибка getResource загрузчика классов при запуске Wildfly внутри Docker - PullRequest
0 голосов
/ 29 мая 2020

У меня есть приложение JavaEE, развернутое на Wildfly и корректно работающее как на Ubuntu, так и на ОС Windows. Однако, когда я пытаюсь докеризовать приложение, оно терпит неудачу.

Вот часть кода, который терпит неудачу:

File templateFile = new File(ESGenerator.class.getClassLoader().getResource("/endpoint-js-template/get-template.js").getFile());
// ...
endpointJSInterface.setTemplate(FileUtils.readFileToString(templateFile));

Вот расположение файла, когда я пытался войти:

// Хорошо - Ubuntu /home/czetsuya/java/jboss/wildfly-15.0.1.Final/standalone/deployments/myApp.war/WEB-INF/lib/myApp-admin-ejbs-6.9.0- SNAPSHOT.jar / endpoint- js -template / get-template. js

// Хорошо - Windows c: \ Java \ Jboss \ wildfly-15.0.1.Final \ standalone \ deployments \ myApp.war \ WEB-INF \ lib \ myApp-admin-ejbs-6.9.0-SNAPSHOT.jar \ endpoint- js -template \ get-template. js

// Ко - Docker /content/myApp.war/WEB-INF/lib/myApp-admin-ejbs-6.9.0-SNAPSHOT.jar/endpoint-js-template/get-template.js

Откуда берется '/ content' и как лучше всего решить эту проблему?

1 Ответ

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

Решением было бы избегать использования новой операции с файлом.

Вот как я могу исправить эту проблему.

// get the URL of the resource from the jar file
URL templateUrl = ESGenerator.class.getClassLoader().getResource("/endpoint-js-template/get-template.js");
// load as string using IOUtils
endpointJSInterface.setTemplate(IOUtils.toString(templateUrl));
...