【问题标题】:Intellij can't run Wildfly serverIntellij 无法运行 Wildfly 服务器
【发布时间】:2017-04-03 13:30:38
【问题描述】:

我正在尝试让 Intellij IDEA 与 Wildfly 10 服务器一起工作。感谢this script,我在this 和Wildfly 之后安装了Intellij。

Intellij使用的启动脚本是/opt/wildfly-10.0.0.Final/bin/standalone.sh,我尝试手动运行,出现如下错误:

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

  JBoss Bootstrap Environment

  JBOSS_HOME: /opt/wildfly

  JAVA: /usr/lib/jvm/java-1.8.0-openjdk-amd64/bin/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

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

java.lang.IllegalArgumentException: Failed to instantiate class "org.jboss.logmanager.handlers.PeriodicRotatingFileHandler" for handler "FILE"
    at org.jboss.logmanager.config.AbstractPropertyConfiguration$ConstructAction.validate(AbstractPropertyConfiguration.java:116)
    at org.jboss.logmanager.config.LogContextConfigurationImpl.doPrepare(LogContextConfigurationImpl.java:335)
    at org.jboss.logmanager.config.LogContextConfigurationImpl.prepare(LogContextConfigurationImpl.java:288)
    at org.jboss.logmanager.config.LogContextConfigurationImpl.commit(LogContextConfigurationImpl.java:297)
    at org.jboss.logmanager.PropertyConfigurator.configure(PropertyConfigurator.java:546)
    at org.jboss.logmanager.PropertyConfigurator.configure(PropertyConfigurator.java:97)
    at org.jboss.logmanager.LogManager.readConfiguration(LogManager.java:514)
    at org.jboss.logmanager.LogManager.readConfiguration(LogManager.java:476)
    at java.util.logging.LogManager$3.run(LogManager.java:399)
    at java.util.logging.LogManager$3.run(LogManager.java:396)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.util.logging.LogManager.readPrimordialConfiguration(LogManager.java:396)
    at java.util.logging.LogManager.access$800(LogManager.java:145)
    at java.util.logging.LogManager$2.run(LogManager.java:345)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.util.logging.LogManager.ensureLogManagerInitialized(LogManager.java:338)
    at java.util.logging.LogManager.getLogManager(LogManager.java:378)
    at org.jboss.modules.Main.main(Main.java:482)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.jboss.logmanager.config.AbstractPropertyConfiguration$ConstructAction.validate(AbstractPropertyConfiguration.java:114)
    ... 17 more
Caused by: java.io.FileNotFoundException: /opt/wildfly/standalone/log/server.log (Permission non accordée)
    at java.io.FileOutputStream.open0(Native Method)
    at java.io.FileOutputStream.open(FileOutputStream.java:270)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
    at org.jboss.logmanager.handlers.FileHandler.setFile(FileHandler.java:151)
    at org.jboss.logmanager.handlers.PeriodicRotatingFileHandler.setFile(PeriodicRotatingFileHandler.java:102)
    at org.jboss.logmanager.handlers.FileHandler.setFileName(FileHandler.java:189)
    at org.jboss.logmanager.handlers.FileHandler.<init>(FileHandler.java:119)
    at org.jboss.logmanager.handlers.PeriodicRotatingFileHandler.<init>(PeriodicRotatingFileHandler.java:70)
    ... 22 more
java.util.concurrent.ExecutionException: Operation failed
    at org.jboss.threads.AsyncFutureTask.operationFailed(AsyncFutureTask.java:74)
    at org.jboss.threads.AsyncFutureTask.get(AsyncFutureTask.java:268)
    at org.jboss.as.server.Main.main(Main.java:103)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.jboss.modules.Module.run(Module.java:329)
    at org.jboss.modules.Main.main(Main.java:507)
Caused by: org.jboss.msc.service.StartException in service jboss.as: Failed to start service
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1904)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalStateException: WFLYDR0006: Directory /opt/wildfly/standalone/data/content is not writable
    at org.jboss.as.repository.ContentRepository$Factory$ContentRepositoryImpl.<init>(ContentRepository.java:188)
    at org.jboss.as.repository.ContentRepository$Factory.addService(ContentRepository.java:154)
    at org.jboss.as.server.ApplicationServerService.start(ApplicationServerService.java:146)
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
    ... 3 more

这与我在 Intellij 中得到的输出完全相同。

感谢this topic,我发现这可能是用户权限的问题。

但是,当我尝试使用 add-user.sh 脚本将用户添加到 wildfly 时,我收到此错误:./add-user.sh: 1: eval: /usr/lib/jvm/jdk1.8.0_60/bin/java: not found

它正在寻找错误的 JDK 路径。我尝试按照不同的解决方案对其进行更改,但它们都不起作用。

我的 JAVA_HOME 设置为 /usr/lib/jvm/java-8-oracle

你们中有人知道该怎么做吗?提前谢谢你:)

【问题讨论】:

  • 日志说它不能创建 .log 文件。检查您对 FS 的权限。
  • 就是这样,我以普通用户运行脚本,wildfly目录主要由wildfly用户拥有(其余为root)。我引用的 wildfly 安装脚本设置了这些权限。

标签: java linux intellij-idea wildfly


【解决方案1】:

忘记 add-user.sh 脚本。这是为了将用户添加到 Wildfly。您的问题在于您的 Linux 用户。

该目录必须可由运行 wildfly 的任何用户写入。

如果您以名为 wildfly 的用户身份运行它,那么您必须将这些目录的所有权更改为该用户。根据您的问题,您似乎正在以其他没有权限访问这些目录的用户身份运行。

如果您想要快速简单的修复并且您不担心系统上的其他用户,您可以更改权限,例如:

sudo chmod -R 766 /opt/wildfly/standalone/

这将授予所有者所有权限,以及其他用户对这些目录的读/写权限。

这不是最佳做法。最佳做法是将该目录所有权授予具有 600 权限的用户“wildfly”。然后,您应该在 linux 上以“wildfly”用户身份运行 wildfly。您可以找到的任何启动脚本都可能为您执行此操作。

【讨论】:

  • 非常感谢您的回答!我使用 chown 的 --from 选项更改了所有文件的所有权,将 wildfly 用户和组替换为我的用户和组。我现在在尝试运行 /opt/wildfly-10.0.0.Final/bin/standalone.sh 时遇到不同的错误:12:36:41,491 ERROR [org.jboss.msc.service.fail](MSC 服务线程 1- 8) MSC000001: Failed to start service jboss.undertow.listener.default: org.jboss.msc.service.StartException in service jboss.undertow.listener.default: Could not start http listener你知道这是从哪里来的吗?跨度>
  • 我找到了原因,有另一个实例在运行。现在我的项目有问题,但我不认为有任何关系,谢谢你的帮助!
  • 对我不起作用(Ubuntu 18.04)。我做了sudo chmod -R 766 /opt/wildfly/standalone/,它将standalone文件夹的访问权限从“访问文件”更改为Group和@的“无访问权限” 987654324@ .. 没有任何效果,我不得不重新安装 WildFly .. 使用 777 解决了问题.. 仅出于开发目的这样做(如上面的答案所述)。
猜你喜欢
  • 2023-03-15
  • 2018-06-26
  • 2022-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-30
相关资源
最近更新 更多