在Eclipse里你可以调试java类文件,有时你也会需要调试JSP文件,但Eclipse并不支持,尽管在JSP源文件中调试JSP代码是一件非常方便的事。
现在有一种好的解决方法,在你告之应用服务器把你的Eclipse工程作为工作目录后,Lomboz可以让你对在应用服务器上的JSP文件所生成的.java文件进行调试。
注意:Lomboz只支持对能够在Eclipse源代码目录中保存一份servlet源代码(.java)的拷贝的应用服务器上进行JSP的调试。
建立实例
Lomboz在你的工程中为你建立的一个叫j2src的特定源文件目录,当你完成调试工作后,你并不需要把由JSP生成的java文件放入你的模块中,所以将这些java文件和真正的源代码文件分开是很有必要的。
如果你使用的是Tomcat或者JBOSS,要能够调试JSP文件必须按下面的方法配置你的应用服务器。而BEA WebLogic在weblogic.xml中已经插入了工作目录的信息,所以不需要再进行下面的操作了。当你完成调试的时候必须删掉这些信息。
在JSP文件被正常的执行中,应用服务器会生成相应的java类文件,为了把这些由JSP生成的java类文件和其他的java类文件分开,应用服务器会把这些类文件放到一个叫‘j2src’的特定目录中。
在WebLogic中,部署web模型的所有描述已经对被正确的配置(weblogic.xml),然而你也可以按照下面的说明来改变它。
BEA WebLogic Server
web应用中的weblogic.xml(myweb)
假定你的工程在c:/eclipse/workspace下,你需要正确地为你的Eclipse工作台改变这些信息。
<weblogic-web-app>
<jsp-descriptor>
<jsp-param>
<param-name>compileFlags</param-name>
<param-value>-g</param-value>
</jsp-param>
<jsp-param>
<param-name>keepgenerated</param-name>
<param-value>true</param-value>
</jsp-param>
<jsp-param>
<param-name> workingDir</param-name>
<param-value>C:/eclipse/ workspace/MyJ2EEProject/j2src</param-value>
</jsp-param>
</jsp-descriptor>
</weblogic-web-app>
Tomcat & JBOSS
我们需要设置Tomcat让它把执行JSP生成的java文件放到‘j2src’目录中。
象下面这样编辑tomcat的server.xml文件(<TOMCAT_HOME>/conf/server.xml)
假定你的工程在c:/eclipse/workspace下,你需要正确地为你的Eclipse工作台改变这些信息。
<context path="/myweb"
docbase=" C: /eclipse/ workspace/My J2EE Project/myweb"
workDir=" C: /eclipse/ workspace/My J2EE Project/j2src" />
重要的已知问题:
Tomcat4与工程中JSP文件的子目录问题
Eclipse不能编译JSP生成的servlet,因为JSP文件的包定义中没有正确的包含URL路径org.apache.jsp.
解决办法:
下载并安装Sysdeo Tomcat 4.x patch
www.sysdeo.com
或者你可以使用提供了包定义的Tomcat3.3。
查看类文件和插入断点
Eclipse通常不会自动检测其他程序(这里指应用服务器)在它的工程中放入的新文件,为了使你的工程与JSP类文件同步,你需要选择j2src目录,然后人工刷新,这将使你的工作台中显示所有的JSP类文件。接下来,你就可以为这些类文件插入断点了。
调试器
插入断点以后,再次进入你的JSP(例如:http://localhost:7001/myweb),你会发现Eclipse调试器会在你插入断点的地方停下来。在这个断点上,你就可以象一般的调试那样进行调试了。
注意:你必须刷新你的工程,确保能够进入刚刚编译生成的JSP类文件.