我的开发环境:eclipse kepler (4.3)+tomcat7.0.42.
在我想看eclipse中web项目jsp文件被tomcat转换成java以后的java源文件的位置,发现正常情况下的webapps以下,没有看到我部署的项目
同一时候,work文件夹(jsp的工作文件夹)以下也没有生成相关的jsp的class文件和java源文件。可是我想看源代码啊。找了一堆关于jsp的源代码位置的文章,都说是在work以下能够找到。后来在不断的尝试下,我搜索了keyword server locations的配置是什么意思。找了以下的资料,加上了自己的一些补充和验证,攻克了上述问题。
首先看一下,资料内容。
配置eclipse的开发环境,配置jdk的安装路径和tomcat安装路径。在eclipse下建立Dynamic Web Projectprojectzhgy,在使用eclipse中new一个tomcat,通过启动该tomcat来公布Dynamic Web Project的时候,事实上并未将project公布到tomcat 安装文件夹所在的 webapps下。这点能够去上述的tomcat 安装文件夹 的webapps文件夹下查看。从启动时候的控制台输出来看项目是被公布到了例如以下的文件夹:
信息: Set web app root system property: 'webapp.root' = [ D:\workSpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\zhgy\ ]
打开该文件夹能够非常清楚的看到存在zhgy这样一个文件夹,这就是我们如今能够訪问的项目文件夹。
再打开 D:\workSpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\ 这个文件夹,能够看到这个文件夹下的结构和 D:\Tomcat 7.0 的文件夹结构是一模一样的,仅仅是多了个wtpwebapps文件夹。事实上 D:\workSpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\ 这个文件夹就是eclipse的对 D:\Tomcat 7.0 文件夹的一个克隆,从而使 D:\workSpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\也可以具备源服务器的功能。
假设再new几个server,就会在 D:\workSpace\.metadata\.plugins\org.eclipse.wst.server.core\ 文件夹下依次出现temp0、temp1、temp2等多个克隆server,可是这里每次仅仅能启动上面一个克隆server,由于他们都使用的是同样的启动port(当然还有同样的关闭port等)。
这样会给我们带来非常多的不方便。举个样例:就上述project而言,当我们在进行开发的时候,项目须要将上传的图片放入到project的同级文件夹的upload文件夹的时候,会发现图片是上传到了所在的文件夹 D:\workSpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\upload\ ,可是无法在浏览器中訪问到上传的图片。这时候我们能够手动将该upload文件夹整个拷贝到 D:\workSpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\webapps\ ,这时在浏览器中的确就能够訪问了。造成这样的现象的原因是tomcat服务器默认webapps为project文件夹,而不是 wtpwebapps 文件夹。之所能够通过浏览器訪问 D:\workSpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\zhgy\ 下的zhgy这个项目,是因为eclipse通过tomcat公布项目的时候在 D:\workSpace-jx\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\conf 文件夹的server.xml文件里有例如以下的设置: