当前位置:文档之家› javaEclipse下配置Windchill远程调试 windchill学习笔记

javaEclipse下配置Windchill远程调试 windchill学习笔记

Tomcat配置修改Tomcat\config.properties找到mode=prod,对比内容,如果没有以下3行,进行追加,同时注释掉mode=prodmode=dev**********设置tomcat远程调试***********jpdaAddress=8002 //表示要远程调试连接的端口号jpdaTransport=dt_socketshell中进入Tomcat目录cd ..cd Tomcat执行以下命令ant -f config.xml configureScripts#ant -f config.xml -projecthelp无用执行完毕后,打开Tomcat/bin目录下的wttomcat_start.bat,查找以下内容,如果没有则追加*********************启用JPDA *********************************rem Un-rem next line to enable debugger attaching to this instance of Tomcatset JAVA_OPTS=%JAVA_OPTS% -Xnoagent -Xdebug -Xrunjdwp:transport=dt_socket,address=8002,server=y,suspend=n重启Tomcat目的:使本机和target 服务器连接起来说明:JPDA简介顾名思义,JPDA为Java平台上的调试器定义了一个标准的体系结构。

该体系结构包括3个主要组成部分:JVM TI、JDI和JDWP。

JVM TI的全称是Java Virtual Machine Tool Interface,它定义了JVM为了支持调试而必须提供的功能及相应的访问接口。

这些访问接口是以本地语言的形式提供的,由JVM(比如Sun公司的HotSpot VM)负责实现。

不过,JVM TI只是JVM提供的一系列函数,调试器(特别是远程的调试器)如何调用呢?其实啊,JVM TI的直接客户端并不是调试器,而是一个称为“JPDA back-end”的东东。

这个东东应该是属于JVM的一部分,在SUN JRE的bin目录下可以找到jdwp.dll(jdwp.so)的库文件,这就是JPDA back-end的实现。

按我理解,JPDA back-end提供了各种访问方式(共享内存,Socket),通过这些方式接收调试器的请求,然后调用JVM TI接口。

JDI的全称是Java Debug Interface,它定义了访问JVM TI接口的高层API,以纯Java语言提供,由JDK实现(在Sun JDK的tools.jar可以找到)。

调试器直接使用JDI来实现调试的功能。

(JDI 由针对前端定义的接口组成,通过它,调试工具开发人员就能通过前端虚拟机上的调试器来远程操控后端虚拟机上被调试程序的运行,JDI 不仅能帮助开发人员格式化JDWP数据,而且还能为JDWP 数据传输提供队列、缓存等优化服务。

)与JPDA back-end相对应,JDI实现的角色就是JPDA front-end。

JDWP的全称是Java Debug Wire Protocol,它定义了JPDA front-end和JPDA back-end之间通讯信息的二进制格式。

它定义了调试器(debugger)和被调试的Java 虚拟机(target vm)之间的通信协议。

这里首先要说明一下debugger 和target vm。

Target vm 中运行着我们希望要调试的程序,它与一般运行的Java 虚拟机没有什么区别,只是在启动时加载了 Agent JDWP 从而具备了调试功能。

而debugger 就是我们熟知的调试器,它向运行中的target vm 发送命令来获取target vm 运行时的状态和控制Java 程序的执行。

Debugger 和target vm 分别在各自的进程中运行,他们之间的通信协议就是JDWP。

这里的通讯信息主要包括两种:调试器发送给JVM的请求信息和JVM发送给调试器的调试信息。

-Xdebug是通知JVM工作在DEBUG模式下-Xrunjdwp启用JDWP实现,它包含若干子选项:transport=dt_socketJPDA front-end和back-end之间的传输方法。

dt_socket表示使用套接字传输。

address=8000JVM在8000端口上监听请求。

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

server=yy表示启动的JVM是被调试者。

如果为n,则表示启动的JVM是调试器。

suspend=yy表示启动的JVM会暂停等待,直到调试器连接上。

suspend=y这个选项很重要。

如果你想从Tomcat启动的一开始就进行调试,那么就必须设置suspend=y。

wind chill配置1、修改site.xconf文件在site.xconf中加入<!-- 增加Method Server的远程调试功能-->该方法服务器本身是一个基于Java的Web应用程序。

它通过HTTP调用的内容服务器通信。

每调用一个方法是时,内容服务器发出HTTP请求传递的Java类的名称,知道如何执行指定的方法的任何一个servlet指定的参数的方法实现。

methods erv er执行对象事务处理的所有方法,根据客户请求动态加载jav a类,并与数据库直接通信,并进行数据访问控制,客户端访问时间和连接数控制以及进行系统调试等功能。

在windchill中被调用的方法运行在MethodServer端<Property name="wt.manager.cmd.MethodServer.debug.args" overridable="true"targetFile="codebase/wt.properties"value="-Xnoagent -Xdebug -Xrunjdwp:transport=dt_socket,address=8003,server=y,suspend=n"/>-Xnoagent 表示禁用默认sun.tools.debug调试器。

shell中执行xconfmanager –p发布目的:通过这些配置将windchill的服务器和jvm联系起来。

2、将codebase及其子目录下所有的class文件和properties文件打成jar包2.1、安装并配置WinRAR虚拟机中安装好WinRAR,修改环境变量path,在后面追加上WinRAR的安装路径, 如:C:\Program Files\WinRAR,目的是为了在控制台识别Rar压缩命令配置完环境变量后需要重启机器。

2.2压缩class文件到cod ebase1.rar将codebase下所有的class文件和properties文件(包含子目录)进行打包压缩,最后解压缩到同一目录下,使用jar命令打成jar包,命令如下:结果Cd codebaseRar a –r codebase1.rar –ms *.class2.3、压缩properties文件到cod ebase1.zip然后继续执行命令,将codebase及其子目录下所有properties文件打包到codebase1.rarRar a –r codebase1.rar –ms *.properties2.4、解压缩cod ebase1.zip并将其内容打成jar包解压缩后路径及内容如下shell,进入codebase目录执行如下命令:jar cvf 91M060.jar –C codebase1/ . 注意:后面有个英文逗号,而且和斜线之间有个空格意为将codebase下的codebase1文件夹里所有文件打包为91M060.jar最后结果如下,codebase1.rar可以删掉了。

2.5、将打好的jar包导入到eclipse 的User libraryEclipse配置打开Eclipse-Run-Debug右键,点击New1.配置MethodServer的Debug端口为在site.xconf里配置的8003,host填写Windchill系统主机名2.配置T omcat的Debug端口填8002, Tomcat\config.properties里配置的。

jsp时使用8002,工作流时使用8003,分别针对tomcat、methodserver;其他版本IDE类似3.查看Debug打开Debug视图会看到如下界面MethodServer会有如下信息4.运行测试程序在main方法里编写一段测试程序,点击运行,或者右键程序Run as run,弹出权限验证窗口,输入用户名和密码可以看到控制台有Windchill信息输出至此,所有配置正确结束。

打开菜单,增加内容:选Debug按钮会出现Debug布局,双击远程java程序不行。

见上图左侧条目。

连接上后methodserver会出现最后一行信息:1、在文件:wt_home\Tomcat\conf\web.xml中把development的值改为true2、重启一个网址://category/32204/anydb/blog/item/0033cd524356a168853524c8.html1. Windchill API目录:%WCHOME%/codebase/wt/clients/library/api/index.html2. Windchill管理员手册位置:%WCHOME%/WHC/WEB-INF/volume/xxx.pdf3. 设置MethodServer 和Servermanager日志可见的方法:修改%WCHOME%/site.xconf文件。

搜索"method.log",<Property name="wt.manager.log.tee" overridable="true" targetFile="codebase/wt.properties" value="true" /><Property name="wt.method.log.tee" ......... value="true" />一般修改过site.xconf文件后,执行xconfmanager -p 使修改的内容生效,运行此命令后相关修改被映射到相应的properties 文件中4. 设置多语言、国际化,修改rbinfo文件后,执行如下命令:resourceBuild ext.fire.zhonghua.tableRB5. 修改web.xml文件6. 清除Tomcat缓存。

相关主题