【问题标题】:Add JBoss 7 server in domain mode to Eclipse将域模式下的 JBoss 7 服务器添加到 Eclipse
【发布时间】:2013-07-12 12:39:05
【问题描述】:

我可以在独立模式下将 JBoss 7 添加到 Eclipse,但是当我尝试在域模式下添加 JBoss 7 服务器时,配置文件的路径总是由 Eclipse 相对于独立文件夹解析。因此,如果我输入 domain.xml 的完整路径,它不喜欢它,如果我只是输入文件名,它会厌倦独立解析它。

有什么想法吗?

谢谢 w

【问题讨论】:

    标签: java eclipse jboss7.x java-ee-6


    【解决方案1】:

    目前不支持。

    来源:JBoss Community Post & JBoss Issue JBIDE-12161

    【讨论】:

      【解决方案2】:

      确实没有正式支持...但是有一种方法可以从 Eclipse 启动和停止它,这样您就可以在 Eclipse 控制台和启动/停止图标中享受所有服务器日志。但是,您将无法从 “运行方式 -> 在服务器上运行” 中受益,因为 Eclipse 不会在进程服务器、主机控制器和主服务器实例中识别您的目标服务器。然而,也有一个补救措施,因为 EAP7 支持针对您的 Eclipse/Maven 构建目录的已展开存档的“非托管部署模式”,允许您使用来自 JBoss-cli 或 JBoss 的启用/禁用命令“刷新”已部署的存档管理控制台(JBoss 不会检测 .class 更改并触发类加载器重新加载......你必须强制执行它)。锦上添花,如果您碰巧使用 GWT Web 前端技术,那么您 can enjoy hot redeployment of your GWT artifacts via the CodeServer in SuperDevMode 在域模式服务器实例中...

      这里是如何进行的:

      • 我假设您在 Eclipse 中安装了 JBoss Tools plug in

      • 在独立模式的“服务器”视图中创建一个“新服务器”,并创建一个以 domain 作为服务器基础目录和 domain.xml 作为配置文件。填充其余部分并保存。因此,此服务器将无法正常启动。

      • 选择刚刚创建的服务器并右键单击“打开”。在填充主 Eclipse 窗口的概览面板中,单击带下划线的“打开启动配置”链接

      • 您需要调整启动配置以匹配 domain.bat / domain.sh 的实际启动。因此,您需要更新较长的 Program 和 VM 参数,如下所述。请编辑下图所示的所有路径字符串以匹配您的环境,例如在您的上下文中,“/jBOSS/EAP70/domain”可能会变成“/projects/jb/as7/domain”......等等

      • 不要忘记检查 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

      类路径:(引导)JRE 系统库 +(用户条目)jboss-modules.jar

      你已经做到了。请注意,要停止服务器,服务器视图的红色停止按钮将不起作用,您必须改用控制台视图中外观相似的红色按钮(这会杀死在控制台中启动的实时 java 进程,这里是 JBoss 进程控制器反过来停止一切)。

      如果你想知道诀窍在哪里……(继续阅读)

      在较长的 java 命令行中,要启动的主要 java 类周围有一个分隔,其中“VM 参数”位于其右侧,“程序参数”位于其左侧。您可以使用 Windows 上的 Microsoft sysinternals 的 process-explorer 之类的工具或在LINUX/UNIX,在您使用 domain.bat 或 domain.sh 启动 jBOSS 之后。

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

      就我而言,我从经典的 domain.sh 或 domain.bat 启动中捕获的(非常长的)命令行是:

      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" 
      

      重写了谁的等价物(查看 jboss-modules.jar 的清单):

      MAIN_CLASS__>> -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"
      

      从你理解这个非常令人惊讶的程序参数部分开始,它复制了许多 VM 参数(因为启动的进程控制器必须使用这些参数调用服务器 JVM...),然后你可以在 Eclipse 服务器中映射这些片段启动配置。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-01
      • 2015-09-23
      • 2012-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-09
      • 1970-01-01
      相关资源
      最近更新 更多