Wildfly 20 не удается запустить «из коробки» в Ubuntu 20

#java #crash #wildfly

#java #сбой #wildfly

Вопрос:

Сразу после установки Wildfly 20 в новой системе Ubuntu 20 моя первая попытка запустить Wildfly завершается ошибкой «Не удалось создать каталог данных сервера: / opt / wildfly-20.0.1.Final / standalone / data». Ошибка. Вот полный дамп:

 =========================================================================

  JBoss Bootstrap Environment

  JBOSS_HOME: /opt/wildfly-20.0.1.Final

  JAVA: java

  JAVA_OPTS:  -server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true  --add-exports=java.base/sun.nio.ch=ALL-UNNAMED --add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED --add-exports=jdk.unsupported/sun.reflect=ALL-UNNAMED

=========================================================================

Failed to read or configure the org.jboss.logmanager.LogManager
java.lang.IllegalArgumentException: Failed to instantiate class "org.jboss.logmanager.handlers.PeriodicRotatingFileHandler" for handler "FILE"
    at org.jboss.logmanager@2.1.15.Final//org.jboss.logmanager.config.AbstractPropertyConfiguration$ConstructAction.validate(AbstractPropertyConfiguration.java:117)
    at org.jboss.logmanager@2.1.15.Final//org.jboss.logmanager.config.LogContextConfigurationImpl.doPrepare(LogContextConfigurationImpl.java:336)
    at org.jboss.logmanager@2.1.15.Final//org.jboss.logmanager.config.LogContextConfigurationImpl.prepare(LogContextConfigurationImpl.java:289)
    at org.jboss.logmanager@2.1.15.Final//org.jboss.logmanager.config.LogContextConfigurationImpl.commit(LogContextConfigurationImpl.java:298)
    at org.jboss.logmanager@2.1.15.Final//org.jboss.logmanager.PropertyConfigurator.configure(PropertyConfigurator.java:546)
    at org.jboss.logmanager@2.1.15.Final//org.jboss.logmanager.PropertyConfigurator.configure(PropertyConfigurator.java:97)
    at org.jboss.logmanager@2.1.15.Final//org.jboss.logmanager.LogManager.readConfiguration(LogManager.java:170)
    at org.jboss.logmanager@2.1.15.Final//org.jboss.logmanager.LogManager.readConfiguration(LogManager.java:132)
    at java.logging/java.util.logging.LogManager.readPrimordialConfiguration(LogManager.java:445)
    at java.logging/java.util.logging.LogManager$2.run(LogManager.java:394)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.logging/java.util.logging.LogManager.ensureLogManagerInitialized(LogManager.java:382)
    at java.logging/java.util.logging.LogManager.getLogManager(LogManager.java:430)
    at org.jboss.modules.Main.main(Main.java:457)
Caused by: java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
    at org.jboss.logmanager@2.1.15.Final//org.jboss.logmanager.config.AbstractPropertyConfiguration$ConstructAction.validate(AbstractPropertyConfiguration.java:115)
    ... 13 more
Caused by: java.io.FileNotFoundException: /opt/wildfly-20.0.1.Final/standalone/log/server.log (No such file or directory)
    at java.base/java.io.FileOutputStream.open0(Native Method)
    at java.base/java.io.FileOutputStream.open(FileOutputStream.java:298)
    at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:237)
    at org.jboss.logmanager@2.1.15.Final//org.jboss.logmanager.handlers.FileHandler.setFile(FileHandler.java:151)
    at org.jboss.logmanager@2.1.15.Final//org.jboss.logmanager.handlers.PeriodicRotatingFileHandler.setFile(PeriodicRotatingFileHandler.java:104)
    at org.jboss.logmanager@2.1.15.Final//org.jboss.logmanager.handlers.FileHandler.setFileName(FileHandler.java:189)
    at org.jboss.logmanager@2.1.15.Final//org.jboss.logmanager.handlers.FileHandler.<init>(FileHandler.java:119)
    at org.jboss.logmanager@2.1.15.Final//org.jboss.logmanager.handlers.PeriodicRotatingFileHandler.<init>(PeriodicRotatingFileHandler.java:72)
    ... 18 more
java.lang.IllegalStateException: WFLYSRV0124: Could not create server data directory: /opt/wildfly-20.0.1.Final/standalone/data
    at org.jboss.as.server@12.0.3.Final//org.jboss.as.server.ServerEnvironment.<init>(ServerEnvironment.java:463)
    at org.jboss.as.server@12.0.3.Final//org.jboss.as.server.Main.determineEnvironment(Main.java:388)
    at org.jboss.as.server@12.0.3.Final//org.jboss.as.server.Main.main(Main.java:96)
    at org.jboss.modules.Module.run(Module.java:352)
    at org.jboss.modules.Module.run(Module.java:320)
    at org.jboss.modules.Main.main(Main.java:617)
  

Вот шаги по установке изhttps://docs.wildfly.org/20/Getting_Started_Guide.html#installation:

 sudo apt install openjdk-11-jdk

sudo apt-get update

Version_Number=20.0.1.Final

wget https://download.jboss.org/wildfly/$Version_Number/wildfly-$Version_Number.tar.gz -P /tmp

sudo tar xf /tmp/wildfly-$Version_Number.tar.gz -C /opt/

cd /opt/wildfly-$Version_Number/bin

./standalone.sh
  

Кто-нибудь может объяснить, что здесь пошло не так?

Заранее благодарю вас.

Ответ №1:

У Wildfly нет разрешения на запись, /opt/wildfly-20.0.1.Final/standalone/log/server.log потому что вы извлекли его с помощью sudo , поэтому все каталоги и файлы принадлежат root.

Если это выполняется в среде типа разработки, запустите:

 sudo chown -R $USER /opt/wildfly-20.0.1.Final
  

Это изменит все файлы и каталоги, которые будут принадлежать вам. Если вместо этого вы запускаетесь как обычный пользователь (скажем, wildfly), просто измените на:

 sudo chown -R wildfly /opt/wildfly-20.0.1.Final
  

Комментарии:

1. Привет, stdunbar, спасибо за ваше предложение сменить владельца. (Обратите внимание, что мне пришлось использовать sudo или я не смог установить в / opt). Я последовал вашему предложению и сменил владельца на своего пользователя (администратора), и теперь я могу запустить Wildfly как сервис! Итак, еще раз спасибо за ваше предложение. Однако теперь у меня проблема с настройкой службой некоторых критических путей. … ПРОДОЛЖЕНИЕ В СЛЕДУЮЩЕМ КОММЕНТАРИИ

2. Когда я устанавливаю (на другой виртуальной машине) Wildfly в / home / myuser / вместо / opt, а НЕ как службу и запускаю ее со следующим, я могу использовать «Тестовое соединение» для подключения к базе данных Sybase SQL Anywhere с использованием драйвера sajdbc4. cd ~/wildfly-20.0.1.Final/bin export LD_LIBRARY_PATH=/home/myuser/wildfly-20.0.1.Final/модули / система / слои / база / com / sybase / основной экспорт CLASSPATH=.:/home/myuser/wildfly-20.0.1.Final/modules/system/layers/base/com/sybase/main/sajdbc4.jar ./standalone.sh … ПРОДОЛЖЕНИЕ В СЛЕДУЮЩЕМ КОММЕНТАРИИ

3. С другой стороны, когда я настраиваю новую виртуальную машину точно так же, за исключением установки в / opt и дополнительных шагов для запуска Wildfly как службы, мое «Тестовое соединение» завершается с ошибкой: 2020-08-28 13:13:41 341 ИНФОРМАЦИЯ [org.jboss.as.controller] (поток загрузки контроллера) WFLYCTL0183: отчет о состоянии службы WFLYCTL0184: новые отсутствующие / неудовлетворенные зависимости: service jboss.jdbc -driver.sajdbc4_jar (отсутствует) зависимости: [service jboss.driver-demander.java:jboss/datasources/TestDB, service org.wildfly.источник данных. TestDB] … ПРОДОЛЖЕНИЕ В СЛЕДУЮЩЕМ КОММЕНТАРИИ

4. Я могу запустить простое тестовое приложение Java в этой системе, которое подключается и выгружает таблицу базы данных с помощью: cd $ HOME / Desktop export LD_LIBRARY_PATH=/opt/wildfly-20.0.1.Final/modules/system/layers/base/com / sybase/main export CLASSPATH=.:/opt/wildfly-20.0.1.Final/modules/system/layers/base/com/sybase/main/sajdbc4.jar java sajdbc4DriverTest.java Обратите внимание, что при запуске службы используются те же пути. Итак, мой вопрос в том, есть ли у вас какие-либо идеи относительно того, почему Wildfly игнорирует два пути, которые я установил перед запуском службы? Еще раз большое спасибо. … ПРОДОЛЖЕНИЕ В СЛЕДУЮЩЕМ КОММЕНТАРИИ

5. Я настоятельно прошу вас принять этот ответ и открыть новый вопрос, поскольку это очень разные вопросы. Я полагаю, что я тоже могу помочь с этим, но очень сложно прочитать новый вопрос только в комментариях.