| zhengl's profile淡定而从容PhotosBlogLists | Help |
|
淡定而从容October 10 具有远程调试的JAVA调试框架(JPDA)简介JPDA是一个多层的调试框架,包括 JVMDI、JDWP、JDI 三个层次。JAVA 虚拟机提供了JPDA的实现。其开发工具作为调试客户端,可以方便的与虚拟机通讯,进行调试
JSR-45规范 JSP的调试一直依赖于具体应用服务器的实现,没有一个统一的模式,JSR-45 针对这种情况,提供了一个标准的模式。我们知道,JAVA 的调试中,主要根据行号作为标志,进行定位。但是 JSP 被编译为 JAVA 代码之后,JAVA 行号与 JSP 行号无法一一对应,怎样解决呢? JSR-45 是这样规定的:JSP 被编译成 JAVA 代码时,同时生成一份 JSP 文件名和行号与 JAVA 行号之间的对应表(SMAP)。JVM 在接受到调试客户端请求后,可以根据这个对应表(SMAP),从 JSP 的行号转换到 JAVA 代码的行号;JVM 发出事件通知前, 也根据对应表(SMAP)进行转化,直接将 JSP 的文件名和行号通知调试客户端。 参考:http://www-128.ibm.com/developerworks/cn/opensource/os-jspdebug/ 现在大部分的IDE环境都有远程调试功能,如JBuilder,Eclipse,IDEA等等 步骤: 1、修改服务器JVM参数,添加对JPDA支持,启动Java虚拟机时绑定远程调试功能监视端口 以JRun为例,jrun使用JDPA稍显麻烦,因为所有的服务都共享同样JVM参数,第二个服务启动后会报端口已被使用的错误 启动JRun前,修改jrun/bin下jvm.config,修改JVM参数 java.args=-Xmx128M -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=2005 监听端口2005 启动JRun后,恢复jvm.config文件JVM参数 2、找到IDE环境远程调试选项,添上服务器主机地址和JPDA监听端口2005 3、在需要调试的程序中添加调试断点,测试IDE就会通知服务器的JVM,某个程序某一行有断点 4、运行程序,调试开始
需要注意的是,被调试的程序编译时必须使用-g,使得编译后的class文件包含调试信息
但是由于JRun并不完全符合JSR-45规范,所以还没有找到jsp的调试方法,但是对于Tomcat5或Resin3.0都可以进行jsp断点调试 July 22 javascript动态改变相关select内容选项,不刷新页面web上经常有这样的需求,一个select B内容是根据另一个select A对应的值查询而来的。每次A 选的值变化的话,都需要重新查询数据库。但是要求不能刷新页面。实现
显示页面
<HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312"> </HEAD>
<BODY>
虚拟社区核心数据webservice<br> <SELECT NAME="sel" id="sel" onChange="getNewText.src='test.js'"> <option value=1>1</option> <option value=2>2</option> <option value=3>3</option> <option value=4>4</option> </SELECT> <span id="span">123213</span> <script id="getNewText"></script> </BODY> </HTML> test.js代码(不一定非得是js,可以是jsp,asp都一样,但内容必须是javascript)
document.getElementById("span").innerHTML="<select><option>aaaa</option><option>234234</option></select>";
原理就是定义一个javascript脚本对象,但其内容都是每次到服务器上取得。
完美解决! July 07 linux下ChartDirector中文字不显示或乱码问题的解决在网上看了很多关于ChartDirector中文问题的解决办法,那我也说一个吧
在windows上只要设置一下字体就可以了
Chart.setDefaultFonts("Simsun","Simsun","Simsun"),三个参数分别是默认字,粗体字和斜体字的字体 在Linux上同样也要设置字体,并且设置Linux默认字符集为GB18030,否则可能有乱码问题哦(没试过,如果有乱码就需要转码了)。
还有个很重要的地方就是设置服务器的启动参数(这一点绝对是原创)-Djava.awt.headless=true 根据Sun网站上的意思是因为linux服务器大部分是字符型界面,不需要UI的支持,这时的java虚拟机省略了UI的功能,所以生成图片时调用打印文字的api会有问题。加上这个参数就OK了。 June 25 推荐Java图形报表工具在网上发现两个很好的图形报表工具,有兴趣的可以研究一下阔,说不定什么时候会用到哦。 JFreeChart:开源免费,效果一般般,重要优点--免费 ChartDirecto:非常棒的东东,做出的图形很漂亮。不过需要$。 我会用破解好的,哈哈哈哈。。。。(周星星的笑声响起) June 24 java动态代理对于Exception的处理,OK呵呵,网上好多对动态处理介绍时的异常处理都有问题。关键是拦截类在调用实际接口实现类时的处理: java动态代理对于Exception的处理,不明白java动态代理机制对于实现AOP编程思想是个非常好的技术手段,但性能上可能有一定影响,会比普通的直接调用速度降低一倍。如果性能上要求非常严的话,可以像JDO一样使用欲编译,改变字节码。呵呵,这不是今天要讨论的问题。 在测试动态代理机制是发现一个严重的问题,不知道大家是怎么解决的,还是我写的代码是错的。 public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { 学习webwork2struts已经用了很长时间了,感觉没什么新意了,老生常谈。现在网上关于webwork2的介绍比较多,想有空研究一下。 |
|||||||||||
|
|