myeclipse中要调试远程的weblogic服务,要怎么设置

myeclipse中要调试远程的weblogic服务,要怎么设置,第1张

  看过许多远程调试的例子,大多数都是针对tomcat或者jboss服务器的,很少能搜索到weblogic服务器的远程调试例子和文章,前些天在项目开发的时候尝试了一下,感觉十分得不错,拿出来跟大家分享一下,不过我要多罗嗦几句。

  远程调试的好处:我们现在开发的模式大多是本机用eclipse集成source管理环境,集成ant的编译环境,用weblogic插件集成运行环境,基本上一个eclipse又当爹又当妈的,这样的好处就是开发环境配置集中,普通的程序员只要按步骤做就可以了,开发步骤简单,对整个项目是一件好事。那么站在普通的程序员角度什么也没有学到,就是在模仿而已,如果本机的硬件配置如果很低的话,意味着开发效率的降低,同时一点开发乐趣都没有,就是在实现业务而已,是很难了解工具本身的特点。远程调试的好处就是把集中的配置分散开来,让资源分配在不同的机器上,降低本机资源的使用。换一句话,就是将运行环境和开发环境的彻底的分离出来,对于那些实时对应和保守的程序员来说,简直就是一个福音,用户环境一旦出现什么bug的话,你个人可以在最短的时间内再现和调试,而不用运行本机的测试环境。

  远程调试的准备知识:使用Java 平台调试架构,Java Platform Debugger Architecture,简称JPDA,具体的可以参照API文档里面的Tool Support里面的Java Platform Debugger Architecture (JPDA)(我的jdk文档是142的,如果是别的版本,你搜索一下jpda就可以找到相关的资料)。换一句话,我们借助于这个平台来debug应用程序,其实我们也会看到eclipse里面也有debug的,那么它们是不是一回事呢我倒是搜索了一下,基本上eclpse的调试就是使用和扩充这个工具平台的,只不过远程调试需要我们自己手动配置而已,而你在本地调试的时候,那些配置都是插件帮你完成的,你本人就是一个使用者而已,所以没有关心的那么多。

  具体的实现步骤:配置服务器的启动参数,如果熟悉weblogic的话,会发现weblogic更多是用java实现的。对于我们来说,如果是windows用户的话,你只需要修改domain

  里面的startWebLogiccmd批处理文件,你在这个文件里设置一个系统变量,

  白话就是你添加一行set JAVA_DEBUG=-Xdebug -Xnoagent -Xrunjdwp: transport=dt_socket,address=4000,server=y,suspend=n。这样是不够的,你还需要将这句话添加到%JAVA_HOME%\bin\java %JAVA_VM% %MEM_ARGS% %JAVA_OPTIONS% -DweblogicName=%SERVER_NAME% -DweblogicProductionModeEnabled=%PRODUCTION_MODE% -Djavasecuritypolicy="%WL_HOME%\server\lib\weblogicpolicy" weblogicServer里

  修改后的结果%JAVA_HOME%\bin\java %JAVA_VM% %JAVA_DEBUG% %MEM_ARGS% %JAVA_OPTIONS%weblogicName=%SERVER_NAME% -DweblogicProductionModeEnabled=%PRODUCTION_MODE% -Djavasecuritypolicy="%WL_HOME%\server\lib\weblogicpolicy" weblogicServer

  这样做的目的就是让你启动weblogic的同时,把JPDA也启动起来,至于你的weblogic的实际启动参数是不是和我一样,我就不知道了,反正这么写的目的就是让JPDA的参数也加载到你的启动参数列表里,启动weblogic的同时也将JPDA启动起来,具体的修改还是根据自己的实际情况来定,但是目的是相同的。

  配置客户端:这边使用的客户端工具自然就是eclipse了,原先你在本地的工程配置保持不变,换一句话说你也必须把自己的工程import到你的eclipse,使用和操作上和本地的没有任何的变化。但是你需要建立一个remote java Application,让后配置一下就可以了(可惜我不会在jr里上穿,否则抓一下图,一看就明白了)。简单地说,在你的debug里有java application,java applet,junit等等,当然那里也有remote java Application,你新建一个就可以了,简单配置一下远程主机的地址和监听端口(就是你在服务器配置过程指定的4000),选择一下你的工程,然后给这个remote java Application起个名字之类。

  需要注意的地方:在你debug的时候,一定要保证你本地的source和服务器上运行的环境上的跑的class一致,换一句话说一定要及时更新source,否则debug的结果就是莫名其妙的。还有你把自己的source编译后的jar包或者文件夹放到服务器上,一定要每次都发布一遍,如果你偶尔忘记一次,那么虽然你服务器上跑的class和本地的source一致,由于你没有发布,那么debug的结果,也不一致了,所以保持一致性是两重的含义。

方式一:通过debugger

方式二:通过sb(line)。

执行下一步

通过next命令。

跳到下一个断点

通过cont命令。

查看某个变量的值

输入repl命令后,再次输入变量名,就可以看到变量对应的值。如果想继续执行代码,可以按ctrl+c退出。

添加/删除watch

通过watch(expr)来添加监视对象。

通过watchers查看当前所有的监视对象。

通过unwatch(expr)来删除监视对象。

添加watch:

首先,先介绍远程调试的先决条件:

1、web 服务器需要能够进行本地调试的条件

2、web 服务器需要安装 visual studio net 远程组件, 客户端只需要“full remote debugging”一项

a windows 2000 操作系统

1、你需要有一个 web 服务器的账号 ,该账号至少应该是”debugger users” ”webadmins”两个用户组的成员(此处我建立一个 ”cityhunter” 的账号,”web admins” 是设置本地调试时创建的)

2、在服务器上的“c:\winnt\microsoftnet\framework\v103705\config\machineconfig”文件中找到“ <processmodel …… />”把“username” 设成"cityhunter", “password” 设为 "123456"。然后重启服务器(不知重启 iis 可不可以)

3、用户必须以 用户名: ”cityhunter” 密码:”123456” 的帐号登录客户端电脑。这一点对于 服务器与客户端 在同一工作组的用户来说是关键!!原因也许是 web 服务器检测账号时,只对当前客户端电脑使用者的账户及密码,而不是检验 打开项目时用户输入的账户及密码。

b windows 2003 操作系统

1、建立一个 ”cityhunter” 的账号,密码为 ”123456”,将其加入”debugger users “用户组

2、右击“我的电脑” → 管理 → 服务和应用程序 → internet 信息管理服务器(iis) → 站点 → 右击“默认web站点” → 新增 → server extensions 2002 管理员 → 将打开一网页,输入 “administrator ”及密码,按步骤做完,最后此账户也至少应该在二个工作组内

3、右击“我的电脑” → 管理 → 服务和应用程序 → internet 信息管理服务器(iis) → 应用程序池 → 右击“defaultapppool” → 属性 → 身份验证 → 指定为 “cityhunter”。完成后重启。

4、用户必须以 用户名: ”cityhunter” 密码:”123456” 的帐号登录客户端电脑才能对 web 服务器的项目进行调试。

1、Linux中配置tomcat在catalinash中添加如下

CATALINA_OPTS="-Xdebug  -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"(不要换行,要在同一行)

2、Window中修改 catalina,bat文件,添加:

Set  “CATALINA_OPTS=-Xdebug  -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"

参数说明:

-Xdebug                              : 启用调试模式

-Xrunjdwp<sub-options>  : 加载JVM的JPDA参考实现库

transport=dt_socket           :Socket连接,可选dt_shmem 通过共享内存的方式连接到调试服务器

address=8000                     :调试服务器监听的端口

server=y                             : 是否是服务器端,n为客户端

suspend=n                         : 启动过程是否加载暂停,y为启动时暂停,方便调试启动过程

3、启动tomcat,看看tomcat是否启动成功,

如果启动成功,tomcat日志文件(catalinaout)中会有如下输出:

Listening for transport dt_socket at address: 8000

4、使用eclipse调试,点击debug,就可进行调试了,剩下的就和普通调试一样了。断点直接在源代码中添加就行

5、可能出现的连接问题:

Failed to connect to remote VM Connection refused

Connection refused: connect。

环境:

创建时间:2022-02-24

修改时间:2022-02-24

linux下使用gdb调试程序是一个基本操作。

本文介绍使用code-server + gdb离线远程调试C++的cmake工程。

最终效果:可以在没有GUI界面的centos上,在windows上以浏览器的方式调试centos上的C++程序。

镜像加速

安装

目录结构:

testcpp

myprinth

myprintcpp

CMakeListstxt

注意:必须生成Debug模式,否则无法调试

建议使用CMake Tools进行编译。

注意:离线下需要同时下载CMake和CMake Tools

linux下验证应用程序是否为debug版本:

默认使用配置文件:~/config/code-server/configyaml

设置密码

不设置密码

浏览器中输入http://IP:8080即可访问

安装C++调试插件 C/C++ extension for VS Code

安装cmake插件 CMake Tools

注意:离线下需要同时下载CMake和CMake Tools

launchjson

设置断点,在code-server中按F5进行调试。

code-server左侧有变量、监视、调用堆栈、断点和Modules信息。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » myeclipse中要调试远程的weblogic服务,要怎么设置

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情