如何调试部署在虚拟机中的应用程序和主机操作系统

时间:2015-12-22 19:05:48

标签: java debugging web-applications virtualbox remote-debugging

我不确定这是否是提出此问题的正确论坛,如果不是这样,请重定向我。

我有这样的工作安排:

1)安装VMWare,其中有虚拟映像,主要是AS,Linux OS。 2)主机OS是windows i,e。虚拟框安装在Windows操作系统中。 3)安装在主机操作系统中的Eclipse和其他工具;在哪里检查代码,进行开发工作等。

现在我有以下问题/怀疑:

1)在我们的主机操作系统中,我们有putty应用程序,我们可以从中连接到分支OS(在虚拟框中运行);我们访问127.0.0.1。这怎么可能?通常127.0.0l.1引用" localhost",如何使用127.0.0.1连接到在虚拟机框中运行的Guest OS?

2)当Web应用程序部署在Jboss AS中(它再次在虚拟框中运行)时,我需要调试应用程序,即检查eclipse中的控制流。由于Eclipse在主机操作系统中运行,并且Jboss在虚拟框中运行(部署了.war),我怎样才能看到控制流,即在eclipse中放置断点。

编辑:

当我运行虚拟机时,它会在启动时自动运行Jboss AS,因此我不确定我是否可以控制提供任何特殊指令,因为Jboss在启动虚拟设备时会自动启动(Cent OS,Jboss)

任何帮助都非常感激。

1 个答案:

答案 0 :(得分:1)

在客户操作系统中运行的任何内容都将客户操作系统视为localhost(127.0.0.1)。

为了远程调试,您需要能够寻址JVM实例的调试器端口,这意味着您需要解决来宾操作系统。

假设您已经可以访问由JBoss AS托管的Web站点,您只需在启动JBoss时打开调试端口,并从Eclipse中引用它,例如:用这个参数启动JBoss:

-agentlib:jdwp=transport=dt_socket,address=GUESTOS:8000,server=y,suspend=n

其中GUESTOS是Guess OS的IP(而不是127.0.0.1),然后在Eclipse Remove Java Application调试配置中指定以下值:

Host: GUESTOS
Port: 8000

端口号可以是您想要的任何值。