JBOSS7热部署-远程调试

实际开发中,生产环境、测试环境、开发环境的服务器环境有差异,测试环境报的问题在开发环境很难重现,也很难定位问题,如果报错,是程序问题还是环境问题也不易排查。

测试环境用的服务器是JBOSS,而开发环境是Jetty或者Tomcat,既然这样,而测试的服务器我们都没有权限访问,甚至看日志的权限都没有。这时可以设置jboss服务器开启远程调试。

开始之前先配好java和jboss的环境变量,具体百度之。

1.热部署

 JBOSS 7 也可以热部署并实时刷新JSP了
在D:\software\jboss-as-7.1.1.Final\standalone\configuration\standalone.xml文件中找到如下配置项做如下配置:
 <subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false">
<configuration>
                <jsp-configuration development="true"/>
        </configuration>

        <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
        <virtual-server name="default-host" enable-welcome-root="true">
                <alias name="localhost"/>
                <alias name="example.com"/>
        </virtual-server>

</subsystem>

即添加

<configuration>

 <jsp-configuration development="true"/>

</configuration>

2. 开启远程调试

打开Jboss安装目录下的bin目录,找到standalone.conf.bat文件(Windowx环境),搜索8787,找到如下一行:

rem set "JAVA_OPTS=%JAVA_OPTS% -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n"

改为如下:去掉红色部分,即注释,然后suspend=y.

set "JAVA_OPTS=%JAVA_OPTS% -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y"

(其实suspend=y和suspend=x貌似都可以!

然后运行standalone.bat启动jboss:


http://localhost:8080/可以看到jboss主页:


 3.eclipse配置

我们把项目的war包放到JBOSS目录下:

到%jboss_home%/standalone/deployments/目录就可以了。

打开Eclipse,连接到Jboss的远程端口,菜单路径

Run-->Debug Configrations-->Remote Java Application  然后双击该菜单Remote Java Application,在弹出的界面新建如下配置:

 

按上图配置完后,单击Apply保存配置,然后单击Debug按钮(确保第二步已经起好jboss),此时已连接到Jboss监听端口8787,Jboss监听到该端口后也开始启动发布应用。

到此OK,然后在你的代码里打上断点,发送请求,开始调试吧,程序将在断点出停止,可以追踪实际请求的一些变量值。


浏览器地址栏输入应用的地址时注意上下文路径,可以在jboss启动信息里面看到:

此时我的地址栏输入格式:http://localhost:8080/ springmvc_demo/hello/test1.do
controller代码片段如下:



如果eclipse远程调试时出现:Failed to connect to remote VM. Connection refused. Connection refused: connect

请参考:http://blog.csdn.net/u011008029/article/details/50586793

可能出现的连接问题:

Failed to connect to remote VM. Connection refused.

Connection refused: connect。


出现如图所示的情况可能是已经建立了一个连接了。

解决方法:去debug透视图中

找到点击断开链接,就可以解决问题了。

不要点红色的方块终止,点它右边的disconnect按钮!


 JBOSS 7 也可以热部署并实时刷新JSP了
在D:\software\jboss-as-7.1.1.Final\standalone\configuration\standalone.xml文件中找到如下配置项做如下配置:
 <subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false">
<configuration>
                <jsp-configuration development="true"/>
        </configuration>

        <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
        <virtual-server name="default-host" enable-welcome-root="true">
                <alias name="localhost"/>
                <alias name="example.com"/>
        </virtual-server>

</subsystem>

即添加

<configuration>

 <jsp-configuration development="true"/>

</configuration>

2. 开启远程调试

打开Jboss安装目录下的bin目录,找到standalone.conf.bat文件(Windowx环境),搜索8787,找到如下一行:

rem set "JAVA_OPTS=%JAVA_OPTS% -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n"

改为如下:去掉红色部分,即注释,然后suspend=y.

set "JAVA_OPTS=%JAVA_OPTS% -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y"

(其实suspend=y和suspend=x貌似都可以!

然后运行standalone.bat启动jboss:


http://localhost:8080/可以看到jboss主页:


 3.eclipse配置

我们把项目的war包放到JBOSS目录下:

到%jboss_home%/standalone/deployments/目录就可以了。

打开Eclipse,连接到Jboss的远程端口,菜单路径

Run-->Debug Configrations-->Remote Java Application  然后双击该菜单Remote Java Application,在弹出的界面新建如下配置:

 

按上图配置完后,单击Apply保存配置,然后单击Debug按钮(确保第二步已经起好jboss),此时已连接到Jboss监听端口8787,Jboss监听到该端口后也开始启动发布应用。

到此OK,然后在你的代码里打上断点,发送请求,开始调试吧,程序将在断点出停止,可以追踪实际请求的一些变量值。


浏览器地址栏输入应用的地址时注意上下文路径,可以在jboss启动信息里面看到:

猜你喜欢

转载自blog.csdn.net/zpcandzhj/article/details/74090430