Tomcat配置
修改Tomcat\config.properties
到mode=prod,对比内容,如果没有以下3行,进行追加,同时注释掉mode=prod
mode=dev
**********设置tomcat远程调试***********
jpdaAddress=8002//表示要远程调试连接的端口号
jpdaTransport=dt_socket
shell中进入Tomcat目录
cd..
cd Tomcat
执行以下命令
l configureScripts
#l-projecthelp无用
执行完毕后,打开Tomcat/bin目录下的wttomcat_start.bat,查以下内容,如果没有则追加
*********************启用JPDA*********************************
rem Un-rem next line to enable debugger attaching to this instance of Tomcat
set JAVA_OPTS=%JAVA_OPTS%-Xnoagent-Xdebug-Xrunjdwp:transport=dt_socket,address=8002,server=y,suspend=n
重启Tomcat
目的:使本机和target服务器连接起来
说明:JPDA简介
lambda拉丁字母
顾名思义,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发送给调试器的调试信息。
总结一下,调试器调用JDK提供的JDI实现(JPDA front-end),经由JDWP协议,和JVM自带的JPDA back-end(jdwp.dll,jdwp.so,...)进行通讯。JPDA back-end通过调用JVM TI接口,从而获知调试信息,或发送控制命令。然后,JPDA back-end将调试信息或命令执行结果,通过JDWP协议,返回给调试器。
-Xdebug
是通知JVM工作在DEBUG模式下
-Xrunjdwp
启用JDWP实现,它包含若干子选项:
transport=dt_socket
JPDA front-end和back-end之间的传输方法。dt_socket表示使用套接字传输。
address=8000
JVM在8000端口上监听请求。调试服务器的端口号,客户端用来连接服务器的端口号。
server=y
y表示启动的JVM是被调试者。如果为n,则表示启动的JVM是调试器。
suspend=y
y表示启动的JVM会暂停等待,直到调试器连接上。
suspend=y这个选项很重要。如果你想从Tomcat启动的一开始就进行调试,那么就必须设置suspend=y。
windchill配置
1、修改f文件
在f中加入
继承封装多态
<!--增加Method Server的远程调试功能-->
该方法服务器本身是一个基于Java的Web应用程序。它通过HTTP调用的内容服务器通信。每调用一个方法是时,内容服务器发出HTTP请求传递的Java类的名称,知道如何执行指定的方法的任何一个servlet指定的参数的方法实现。
methodserver执行对象事务处理的所有方法,根据客户请求动态加载java类,并与数据库直接通信,并进行数据访问控制,客户端访问时间和连接数控制以及进行系统调试等功能。在windchill中被调用的方法运行在MethodServer端<Property name="d.MethodServer.debug.args"overridable="true"
targetFile="codebase/wt.properties"
value="-Xnoagent-Xdebug-Xrunjdwp:transport=dt_socket,address=8003,server=y,suspend=n"/>
-Xnoagent表示禁用默认ls.debug调试器。颜代码是多少
shell中执行xconfmanager–p发布
目的:通过这些配置将windchill的服务器和jvm联系起来。
2、将codebase及其子目录下所有的class文件和properties文件打成jar包
2.1、安装并配置WinRARproperties文件用什么打开
虚拟机中安装好WinRAR,修改环境变量path,在后面追加上WinRAR的安装路径,如:C:\Program Files\WinRAR,目的是为了在控制台识别Rar压缩命令
配置完环境变量后需要重启机器。
2.2压缩class文件到codebase1.rar
将codebase下所有的class文件和properties文件(包含子目录)进行打包压缩,最后解压缩到同一目录下,使用jar命令打成jar包,命令如下:
结果
linux系统编程实例
Cd codebase
Rar a–r codebase1.rar–ms*.class
2.3、压缩properties文件到codebase1.zip
然后继续执行命令,将codebase及其子目录下所有properties文件打包到codebase1.rar
Rar a–r codebase1.rar–ms*.properties
2.4、解压缩codebase1.zip并将其内容打成jar包
解压缩后路径及内容如下
shell,进入codebase目录执行如下命令:go语言教学
jar cvf91M060.jar–C codebase1/.注意:后面有个英文逗号,而且和斜线之间有个空格意为将codebase下的codebase1文件夹里所有文件打包为91M060.jar
最后结果如下,codebase1.rar可以删掉了。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。