使用域时,Eclipse Wildfly Server Runtime失败

时间:2016-02-03 18:24:34

标签: eclipse wildfly

我只是将Jboss工具安装到Eclipse Mars中并尝试使用Wildfly 10.0 Runtime。我已将运行时配置为使用域模式,但当我尝试启动应用时,我收到错误:

11:18:07,344 INFO  [org.jboss.modules] (main) JBoss Modules version 1.5.0.Final
11:18:07,564 INFO  [org.jboss.msc] (main) JBoss MSC version 1.2.6.Final
11:18:07,618 INFO  [org.jboss.as] (MSC service thread 1-7) WFLYSRV0049: WildFly Full 10.0.0.CR5 (WildFly Core 2.0.5.Final) starting
11:18:07,871 ERROR [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0055: Caught exception during boot: org.jboss.as.controller.persistence.ConfigurationPersistenceException: WFLYCTL0085: Failed to parse configuration
    at org.jboss.as.controller.persistence.XmlConfigurationPersister.load(XmlConfigurationPersister.java:131)
    at org.jboss.as.server.ServerService.boot(ServerService.java:356)
    at org.jboss.as.controller.AbstractControllerService$1.run(AbstractControllerService.java:299)
    at java.lang.Thread.run(Thread.java:745)
Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[3,1]
Message: Unexpected element '{urn:jboss:domain:4.0}domain'
    at org.jboss.staxmapper.XMLMapperImpl.processNested(XMLMapperImpl.java:108)
    at org.jboss.staxmapper.XMLMapperImpl.parseDocument(XMLMapperImpl.java:69)
    at org.jboss.as.controller.persistence.XmlConfigurationPersister.load(XmlConfigurationPersister.java:123)
    ... 3 more

11:18:07,872 FATAL [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0056: Server boot has failed in an unrecoverable manner; exiting. See previous messages for details.
11:18:07,873 INFO  [org.jboss.as.server] (Thread-2) WFLYSRV0220: Server shutdown has been requested.
11:18:07,883 INFO  [org.jboss.as] (MSC service thread 1-6) WFLYSRV0050: WildFly Full 10.0.0.CR5 (WildFly Core 2.0.5.Final) stopped in 6ms

当我使用独立模式但我需要域模式来测试我的应用时,我不会遇到此问题。有谁知道问题可能是什么?

1 个答案:

答案 0 :(得分:0)

实际上,jBoss服务器运行时插件/工具构建的“启动配置”对于 - 模式启动是错误的。

您可以按照以下方式修复:

  1. 照常创建服务器及其关联的运行时(在Eclipse服务器的视图中>右键单击> new>服务器)。创建运行时时,请注意将“服务器基目录”指定为“域”(默认为“独立”),然后将“配置文件”指定为“domain.xml”
  2. 在服务器视图中,右键单击刚刚创建的jBoss服务器并执行“打开”。在“常规信息”类别下,有一个“开放启动配置”链接
  3. 您需要调整启动配置以匹配domain.bat / domain.sh的实际启动。当然,您需要调整以下所有路径:
  4. 不要忘记检查OUT选项'始终更新与运行时相关的参数'

    计划参数:

    -mp "C:/jBOSS/EAP70/modules" org.jboss.as.process-controller -jboss-home "C:\jBOSS\EAP70" -jvm "C:\java\JDK8U66\jre\bin\java" -mp "C:/jBOSS/EAP70/modules" -- "-Dorg.jboss.boot.log.file=C:/jBOSS/EAP70/domain/log/boot.log" "-Dlogging.configuration=file:/C:/jBOSS/EAP70/domain/configuration/logging.properties" -Xms64M -Xmx512M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -server -- -default-jvm "C:\java\JDK8U66\jre\bin\java"
    

    VM参数:

    -Xms64M -Xmx512M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -server "-Dorg.jboss.boot.log.file=C:/jBOSS/EAP70/domain/log/boot.log" "-Dlogging.configuration=file:/C:/jBOSS/EAP70/domain/configuration/logging.properties" -cp "C:\jBOSS\EAP70\jboss-modules.jar" -Djboss.home.dir=C:/jBOSS/EAP70 -Djboss.bind.address.management=localhost
    

    工作目录: C:/ jBOSS / EAP70 / bin

    主要课程: org.jboss.modules.Main

    Classpath:(bootstrap)JRE系统库+(用户条目)jboss-modules.jar

    如果你很想知道诀窍在哪里:在长java命令行中,主要java类有一个分离要启动,其中“VM参数”位于右侧它,以及左侧的“程序参数”。您可以使用Windows上的Microsoft sysinternals process-explorer 等工具捕获在域模式下启动服务器的实际完整java命令行,或者在您拥有后使用LINUX中的pargs shell命令捕获通过domain.batdomain.sh启动了jBOSS。

    但是你会在这里看到java命令采用“-jar 模块 .jar”参数,而Eclipse启动需要传统的“-cp 模块 .jar 主要类“参数形式。 '-jar'参数确实是一个变体规范,其中主类由jar中的manifest文件指定。

    就我而言,(非常长的)命令行是:

    C:\jBOSS\EAP70\bin>"C:\Program Files\Java\jre1.8.0_66\bin\java"  -Xms64M -Xmx512M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -server  "-Dorg.jboss.boot.log.file=C:\jBOSS\EAP70\domain\log\process-controller.log"  "-Dlogging.configuration=file:C:\jBOSS\EAP70\domain\configuration/logging.properties"     -jar "C:\jBOSS\EAP70\jboss-modules.jar"          -mp "C:\jBOSS\EAP70\modules"      org.jboss.as.process-controller     -jboss-home "C:\jBOSS\EAP70"     -jvm "C:\Program Files\Java\jre1.8.0_66\bin\java"          -mp "C:\jBOSS\EAP70\modules"     --     "-Dorg.jboss.boot.log.file=C:\jBOSS\EAP70\domain\log\host-controller.log"     "-Dlogging.configuration=file:C:\jBOSS\EAP70\domain\configuration/logging.properties"     -Xms64M -Xmx512M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -server     --     -default-jvm "C:\Program Files\Java\jre1.8.0_66\bin\java"
    

    打破如下:

    JAVA_COMMAND>> "C:\Program Files\Java\jre1.8.0_66\bin\java"
    VM_ARGS_____>> -Xms64M -Xmx512M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -server  "-Dorg.jboss.boot.log.file=C:\jBOSS\EAP70\domain\log\process-controller.log"  "-Dlogging.configuration=file:C:\jBOSS\EAP70\domain\configuration/logging.properties"
    MAIN_CLASS__>> -jar "C:\jBOSS\EAP70\jboss-modules.jar" >>EQUIVALENT>> -cp "C:\jBOSS\EAP70\jboss-modules.jar" org.jboss.modules.Main
    PROGRAM-ARGS>> -mp "C:\jBOSS\EAP70\modules"      org.jboss.as.process-controller     -jboss-home "C:\jBOSS\EAP70"     -jvm "C:\Program Files\Java\jre1.8.0_66\bin\java"          -mp "C:\jBOSS\EAP70\modules"     --     "-Dorg.jboss.boot.log.file=C:\jBOSS\EAP70\domain\log\host-controller.log"     "-Dlogging.configuration=file:C:\jBOSS\EAP70\domain\configuration/logging.properties"     -Xms64M -Xmx512M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -server     --     -default-jvm "C:\Program Files\Java\jre1.8.0_66\bin\java"
    

    从理解这个非常令人惊讶的程序参数部分来复制许多JVM基础之后,您可以在Eclipse启动配置中映射这些部分。不要忘记“-jar C:\ jBOSS \ EAP70 \ jboss-modules.jar”在'-cp时变为“-cp C:\ jBOSS \ EAP70 \ jboss-modules.jar org.jboss.modules.Main”。 ..'然后是最后一段VM参数,“org.jboss.modules.Main”是在“Main”选项卡下定义的一个类。