5

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

有任何想法吗?

谢谢w

4

2 回答 2

3

目前不支持。

来源:JBoss 社区帖子JBoss 问题 JBIDE-12161

于 2013-09-25T21:31:57.043 回答
1

确实没有正式支持......但是有一种方法可以从 Eclipse 启动和停止它,这样您就可以在 Eclipse 控制台和启动/停止图标中享受所有服务器日志。但是,您将无法从“运行方式 -> 在服务器上运行”中受益,因为 Eclipse 不会在流程服务器、主机控制器和主服务器实例中识别您的目标服务器。然而,也有一个补救措施,因为 EAP7 支持针对您的 Eclipse/Maven 构建目录的已展开存档的“非托管部署模式”,允许您使用来自 JBoss-cli 或 JBoss 的启用/禁用命令“刷新”已部署的存档管理控制台(JBoss 不会检测 .class 更改并触发类加载器重新加载......你必须强制执行它)。蛋糕上的樱桃,可以通过域模式服务器实例中 SuperDevMode 中的 CodeServer 享受 GWT 工件的热重新部署......

以下是如何进行:

  • 我假设你在 Eclipse中安装了 JBoss Tools 插件

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

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

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

  • 不要忘记检查选项始终更新与运行时相关的参数

程序参数:

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

虚拟机参数:

-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 中的“ps -eaf”或“pargs”shell 命令之类的工具来捕获在域模式下启动服务器的实际完整 java 命令行,之后您使用 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 服务器启动配置中映射这些片段。

于 2016-09-13T20:23:23.970 回答