Не удалось прочитать log4j.properties - PullRequest
0 голосов
/ 13 сентября 2018

У нас есть модуль, который содержит log4j.properties и другие файлы в нем. И есть отдельный модуль, который зависит от 1-го модуля (Realign). Итак, мы сделали первый модуль в виде jar-файла и поместили его в папку WEB-INF / lib второго модуля (Reasign). Мы запускаем модули на сервере Liberty. Но все же мы получаем исключение File Not found, как показано ниже,

log4j:ERROR Could not read configuration file
[file:/metlife/runtime/installed/wlp/usr/servers/bobr/apps/expanded/bobr.ear/BOBReassignmentWeb.war/WEB-INF/lib/Realignment.jar!/r_resources/log4j.properties].
[9/12/18 8:28:51:591 EDT] 000002de SystemErr                                                    R java.io.FileNotFoundException: 
file:/metlife/runtime/installed/wlp/usr/servers/bobr/apps/expanded/bobr.ear/BOBReassignmentWeb.war/WEB-INF/lib/Realignment.jar!/r_resources/log4j.properties (No such file or directory) 

1 Ответ

0 голосов
/ 18 сентября 2018

Похоже, ваш PropertiesConfigurator класс принимает путь к файлу (в виде строки).Если бы вы использовали вместо этого URL, я думаю, что это сработало бы - таким образом, вы получите URL JAR, который включает в себя путь к архиву JAR (или WAR, EAR и т. Д.) И путь внутри JAR.Если у вас есть контроль над кодом PropertiesConfigurator, я бы порекомендовал изменить его так, чтобы он загружал файл через URL.

Если это не вариант, вы можете извлечь файлы свойств и поместить их в файл.система напрямую.Например, вы можете создать каталог в каталоге вашего сервера (например, мы назовем его log4jProps).Затем вы можете создать разделяемую библиотеку в конфигурации вашего сервера (server.xml) следующим образом:

<library id="log4j.props">
  <fileset dir="${server.config.dir}/log4jProps" includes="r_resources/*properties"/>
</library>

, а затем обновить конфигурацию приложения, чтобы использовать эту библиотеку в качестве общей разделяемой библиотеки:

<application id="myApp" name="myApp" location="myApp.war"...>
  <classloader commonLibraryRef ="log4j.props" />
</application>

Для правильной меры вы, вероятно, должны удалить файл свойств из архивов вашего приложения - таким образом, они не будут загружаться оттуда, а затем сбросить PropertiesConfigurator, как сейчас.

Надеюсь, это поможет, Энди

...