600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 远程调试运行在Resin上面的Web应用程序

远程调试运行在Resin上面的Web应用程序

时间:2021-07-20 13:57:11

相关推荐

远程调试运行在Resin上面的Web应用程序

为什么80%的码农都做不了架构师?>>>

有时候,我们不得不放弃在本地调试我们的程序,把我们的程序先布署到服务器,然后把调试信息都记在日志中,用眼睛瞅日志来调试程序。

不是用这种方式不行,只是效率太低,本来写程序是一件开心的事情,却变得令人心烦。

其实,Java本身支持远程调试,只要增加一些JVM的启动参数,就可以远程调试了,JVM启动参数就像下面的样子:

-Xdebug-Xnoagent-piler=NONE-Xrunjdwp:transport=dt_socket,server=y,address=9988,suspend=n

下面是参数的说明:

-XDebug 启用调试。

-Xnoagent 禁用默认sun.tools.debug调试器。

-piler=NONE 禁止 JIT 编译器的加载。

-Xrunjdwp 加载JDWP的JPDA参考执行实例。

transport 用于在调试程序和 VM 使用的进程之间通讯。

dt_socket 套接字传输。

dt_shmem 共享内存传输,仅限于 Windows。

server=y/n VM 是否需要作为调试服务器执行。

address=9988调试服务器的端口号,客户端用来连接服务器的端口号。

suspend=y/n 是否在调试客户端建立连接之后启动 VM 。

写出来的样子大概是这样的:

java-Xdebug-Xnoagent-piler=NONE-Xrunjdwp:transport=dt_socket,server=y,address=9988,suspend=ntest.package.Main

配置远程服务器

如果我们想要调试一个Web应用程序,那么在启动Web服务器时需要增加上面的JVM参数。

由于最近我在使用Resin,所以就以Resin 4.0作为例子来说明一下(主要原因是网上说的都不管用)。

环境:CentOS 6.3

应用服务器:Resin4.0

JDK版本:JDK6

#进入Resin的配置文件目录#cd/usr/local/resin/conf#lltotal80-rw-r--r--1rootroot12620Oct2422:42app-default.xml-rw-r--r--1rootroot6447Oct2422:42cluster-default.xml-rw-r--r--1rootroot21594Oct2422:42health.xmldrwxr-xr-x2rootroot4096Oct2422:42keysdrwxr-xr-x2rootroot4096Oct2422:42licenses-rw-r--r--1rootroot5119Oct2422:42resin.properties-rw-r--r--1rootroot12404Mar2718:08resin.xml

Resin启动时的JVM参数在resin.xml里面配置。

# vim resin.xml

<clusterid="app-youyuan"><root-directory>.</root-directory><server-default><httpaddress="*"port="8080"/><jvm-arg>-Xms1024m</jvm-arg>.........<jvm-arg>-Xdebug</jvm-arg><jvm-arg>-Xrunjdwp:transport=dt_socket,address=9988,server=y,suspend=n</jvm-arg></server-default></cluster>

cluster -> server-default结点里面设置JVM参数。

设置完成后重启resin:

/usr/local/resin/bin/resin.shrestart-serveryouyuan

启动完后,检查端口:

#netstat-apn|grep9988tcp00你机器的IP:9988这里是IP:51840ESTABLISHED30130/java

可以看到,已经正常启动了。剩下的就是在本地连到服务器上进行调试了。

本地使用Eclipse连接服务器进行远程调试

Eclipse版本:4.3

1. 右击要调试项目,在弹出的菜单中点击 Debug AS -> Debug Configurations...

如图所示,右击Remote Java Application,新建一项,

在Project中选中要远程调试的项目,在Connection Type中选择Socket Attach,在Connection Propertyies中设置远程调试的应用的IP地址及端口。

然后点击Apply,Debug就可以连接了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。