我试图在没有权限写入WildFly主目录及其子目录的用户下启动WildFly 8.2。为此,我将standalone
目录复制到用户主目录。这是我用来在cygwin中启动WildFly的命令:
$ /cygdrive/c/Program\ Files/wildfly-8.2.0.Final/bin/standalone.sh -Djboss.server.base.dir='C:\Users\above_mentioned_user\standalone' -c standalone.xml
以下是此命令的输出:
cygpath: can't convert empty path
=========================================================================
JBoss Bootstrap Environment
JBOSS_HOME: C:\Program Files\wildfly-8.2.0.Final
JAVA: /cygdrive/c/Program Files/Java/jdk1.7.0_51/bin/java
JAVA_OPTS: -server -Xms64m -Xmx512m -XX:MaxPermSize=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:119)
at org.jboss.logmanager.config.LogContextConfigurationImpl.doPrepare(LogContextConfigurationImpl.java:338)
at org.jboss.logmanager.config.LogContextConfigurationImpl.prepare(LogContextConfigurationImpl.java:291)
at org.jboss.logmanager.config.LogContextConfigurationImpl.commit(LogContextConfigurationImpl.java:300)
at org.jboss.logmanager.PropertyConfigurator.configure(PropertyConfigurator.java:542)
at org.jboss.logmanager.PropertyConfigurator.configure(PropertyConfigurator.java:97)
at org.jboss.logmanager.LogManager.readConfiguration(LogManager.java:300)
at org.jboss.logmanager.LogManager.readConfiguration(LogManager.java:262)
at java.util.logging.LogManager$2.run(LogManager.java:312)
at java.util.logging.LogManager$2.run(LogManager.java:310)
at java.security.AccessController.doPrivileged(Native Method)
at java.util.logging.LogManager.readPrimordialConfiguration(LogManager.java:310)
at java.util.logging.LogManager.getLogManager(LogManager.java:292)
at java.util.logging.Logger.<init>(Logger.java:264)
at java.util.logging.Logger.<init>(Logger.java:260)
at java.util.logging.LogManager$RootLogger.<init>(LogManager.java:1430)
at java.util.logging.LogManager$RootLogger.<init>(LogManager.java:1428)
at java.util.logging.LogManager$1.run(LogManager.java:196)
at java.security.AccessController.doPrivileged(Native Method)
at java.util.logging.LogManager.<clinit>(LogManager.java:173)
at org.jboss.modules.Main.main(Main.java:443)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.jboss.logmanager.config.AbstractPropertyConfiguration$ConstructAction.validate(AbstractPropertyConfiguration.java:117)
... 20 more
Caused by: java.io.FileNotFoundException: C:\Program Files\wildfly-8.2.0.Final\standalone\log\server.log (The system cannot find the path specified)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:221)
at org.jboss.logmanager.handlers.FileHandler.setFile(FileHandler.java:154)
at org.jboss.logmanager.handlers.PeriodicRotatingFileHandler.setFile(PeriodicRotatingFileHandler.java:105)
at org.jboss.logmanager.handlers.FileHandler.setFileName(FileHandler.java:192)
at org.jboss.logmanager.handlers.FileHandler.<init>(FileHandler.java:122)
at org.jboss.logmanager.handlers.PeriodicRotatingFileHandler.<init>(PeriodicRotatingFileHandler.java:73)
... 25 more
14:17:42,875 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 32) JBAS010280: Activating Infinispan subsystem.
14:17:42,884 INFO [org.jboss.as.naming] (ServerService Thread Pool -- 40) JBAS011800: Activating Naming Subsystem
14:17:42,859 INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 27) JBAS010403: Deploying JDBC-compliant driver class org.h2.Driver (version 1.3)
14:17:42,882 INFO [org.jboss.as.jsf] (ServerService Thread Pool -- 38) JBAS012615: Activated the following JSF Implementations: [main]
14:17:42,895 INFO [org.jboss.remoting] (MSC service thread 1-8) JBoss Remoting version 4.0.6.Final
14:17:42,906 INFO [org.jboss.as.security] (ServerService Thread Pool -- 45) JBAS013171: Activating Security Subsystem
14:17:42,919 WARN [org.jboss.as.txn] (ServerService Thread Pool -- 46) JBAS010153: Node identifier property is set to the default value. Please make sure it is unique.
14:17:42,935 INFO [org.jboss.as.connector.logging] (MSC service thread 1-1) JBAS010408: Starting JCA Subsystem (IronJacamar 1.1.9.Final)
14:17:42,938 INFO [org.wildfly.extension.io] (ServerService Thread Pool -- 31) WFLYIO001: Worker 'default' has auto-configured to 8 core threads with 64 task threads based on your 4 available processors
14:17:42,941 INFO [org.jboss.as.webservices] (ServerService Thread Pool -- 48) JBAS015537: Activating WebServices Extension
14:17:42,953 INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-3) JBAS010417: Started Driver service with driver-name = h2
14:17:42,960 INFO [org.jboss.as.security] (MSC service thread 1-3) JBAS013170: Current PicketBox version=4.0.21.Final
14:17:42,967 INFO [org.jboss.as.naming] (MSC service thread 1-2) JBAS011802: Starting Naming Service
14:17:42,970 INFO [org.jboss.as.mail.extension] (MSC service thread 1-5) JBAS015400: Bound mail session [java:jboss/mail/Default]
14:17:43,040 INFO [org.wildfly.extension.undertow] (MSC service thread 1-3) JBAS017502: Undertow 1.1.0.Final starting
14:17:43,040 INFO [org.wildfly.extension.undertow] (ServerService Thread Pool -- 47) JBAS017502: Undertow 1.1.0.Final starting
14:17:43,489 INFO [org.wildfly.extension.undertow] (ServerService Thread Pool -- 47) JBAS017527: Creating file handler for path C:\Program Files\wildfly-8.2.0.Final/welcome-content
14:17:43,497 INFO [org.wildfly.extension.undertow] (MSC service thread 1-1) JBAS017525: Started server default-server.
14:17:43,520 INFO [org.wildfly.extension.undertow] (MSC service thread 1-1) JBAS017531: Host default-host starting
14:17:43,672 INFO [org.wildfly.extension.undertow] (MSC service thread 1-5) JBAS017519: Undertow HTTP listener default listening on /127.0.0.1:8080
14:17:43,719 INFO [org.jboss.as.server.deployment.scanner] (MSC service thread 1-3) JBAS015012: Started FileSystemDeploymentService for directory C:\Users\tazi0514\projects\nfv\r2\wildfly\deployments
14:17:43,808 INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-3) JBAS010400: Bound data source [java:jboss/datasources/ExampleDS]
14:17:43,994 INFO [org.jboss.ws.common.management] (MSC service thread 1-7) JBWS022052: Starting JBoss Web Services - Stack CXF Server 4.3.2.Final
14:17:44,114 INFO [org.jboss.as] (Controller Boot Thread) JBAS015961: Http management interface listening on http://127.0.0.1:9990/management
14:17:44,115 INFO [org.jboss.as] (Controller Boot Thread) JBAS015951: Admin console listening on http://127.0.0.1:9990
14:17:44,116 INFO [org.jboss.as] (Controller Boot Thread) JBAS015874: WildFly 8.2.0.Final "Tweek" started in 3294ms - Started 184 of 234 services (82 services are lazy, passive or on-demand)
正如您在上面的日志中看到的那样,首先WildFly尝试写入C:\Program Files\wildfly-8.2.0.Final\standalone\log\server.log
,即使命令行中指出另一个目录作为服务器基目录。由于缺乏权限而无法写入,因此WildFly会正常启动服务器。
有没有办法让WildFly不尝试在默认服务器基目录中编写日志?
答案 0 :(得分:1)
尝试从复制的logging.properties
目录中删除standalone
。这是一个生成的文件,用于定义绝对日志文件路径,我认为在您的情况下仍然引用原始位置。
答案 1 :(得分:0)
似乎WildFly忽略了jboss.server.base.dir
属性的值。但它仍然考虑了JBOSS_BASE_DIR
环境变量的值。所以我在BASH中做了以下别名,以便有一个简短的方法来启动WildFly:
alias wildfly_start='JBOSS_BASE_DIR="$(realpath ~/wildfly)" /bin/bash -c "/cygdrive/c/Program\ Files/wildfly-8.2.0.Final/bin/standalone.sh -c standalone.xml"'
在我的情况下,cygwin中的用户主目录与Windows用户主目录一致。
答案 2 :(得分:0)
我已经在Ubuntu 18.04桌面上安装了WildFly 8.2.1。我可以毫无问题地使用standalone.sh
从我的终端以root身份启动WildFly,但是当我从Intellij IDEA中启动它时,它显示了上述错误。
要修复此问题,我在Ubuntu中创建了一个“ wildfly”组,并使用chgrp
将其设置为WildFly安装文件夹的组。然后,我为该文件夹的组分配了rwx
权限。最后,我将我的登录用户(运行Intellij IDEA的用户)添加到wildfly组。现在它可以在IDEA中运行,而不会抱怨权限被拒绝。