设为首页 收藏本站
查看: 1281|回复: 0

[经验分享] tomcat加载项目原理解惑

[复制链接]

尚未签到

发表于 2015-8-8 08:22:43 | 显示全部楼层 |阅读模式
  今天新遇到一个问题,同样是在启动startup.bat的时候, DSC0000.gif       
  最后得出的结论居然是java_home这个环境变量的值后面加了个";(分号)"的原因.得出的解释是加上分号代表有两个值以上,java_home不能有两个值.
  


   在tomcat的webapps下加入了一个文件夹,希望通过启动tomcat来访问文件夹下面的文件.然而在启动startup.bat和在eclipse下面启动tomcat都没能成功.
          在startup.bat的最后加入了一个"pause",于是看到提示说缺少JDK_HOME和JRE_HOME,于是在startup.bat中加入了

SET JAVA_HOME=C:\Program Files\Java\jdk1.6.0_20
SET JRE_HOME=C:\Program Files\Java\jre6
  再启动startup.bat就可以成功的访问webapps下面的所有项目了.
  我们再回过头来分析eclipse下面的tomcat问题.在eclipse中新建Server时都需要Add and Remove Projects,所以我们可以想象在我没有为tomcat添加任何项目的情况下不可以访问项目是理所当然的.也就是添加了哪一个或几个项目才可以访问哪些项目下的资源.这和直接启动tomcat有区别.在网上查到了一篇"链接:浅谈Eclipse调用Tomcat服务的原理"有详细的解释.如下:
  


  首先,在Eclipse中新建一个Hello工程,Workspace的位置在c:\eclipse\workspace,所以hello工程的位置就是在%Workspace%\hello\这个文件夹中。

    然后在hello工程中添加一个hello.jsp或者index.jsp都可以(index.jsp会方便一点),内容随便写点,如在body标签之间中就一个Hello Eclipse and Tomcat6.0!然后Run as中选择“Run on server”,这是就会调用已经配置好的Tomcat服务器(此时把你的Tomcat服务关闭,让Eclipse来调用就可以了,否则会有小小的冲突),这时在浏览器(Eclipse当中的Web Browser)中就有了我们想看到的东西,其中url=http://localhost/hello/(隐含index.jsp)!





Hello Eclipse and Tomcat6.0!





    !重点来了,Eclipse这期间干了什么?Tomcat的虚拟目录中,你没有设置Hello,怎么能运行?

    1.在MyEclipse的做法(MyEclipse有,Eclipse没有的方法)是:将你的工程拷贝一份到Tomcat目录中的webapps\目录当中(这个目录中,不需设置,tomcat就会把文件夹下当做一个站点,但是webapps\这个目录下的html文件是不会解析的,根目录URL\解析的是ROOT文件夹下的网页文件),这样Tomcat就多了一个站点,自然可以访问。

    2.在Eclipse中的做法不太一样,Eclipse调用了JDK中的JAVAw.exe,并且指定了许多参数,如:

%JAVA_HOME%\bin\javaw.exe -Dcatalina.base=C:\eclipse\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1 "-Dcatalina.home=c:\Tomcat 6.0" -Dwtp.deploy=C:\eclipse\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps "-Djava............."
  如果你的windows任务管理器有印象路径(或者其他任务管理工具)你就会看到这行命令行,而此时,任务列表中没有Tomcat.exe这个服务进程,但是你却可以访问Tomcat服务器的hello工程的页面。

    此时,打开文件夹:C:\eclipse\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1

你可以看到的是类似Tomcat目录下的结构,在wtpwebapps中就有你所有的工程拷贝(即Workspace目录下的project)。如果你访问http://localhost可能提示你404找不到页面,但是在你的Tomcat下的ROOT里确实有文件,并且现在你用Tomcat的webApps下的站点都无法使用,原因就在于Eclipse更改了(使用参数,临时更改,关闭Eclipse中的Tomcat服务,Tomcat恢复原样)Tomcat的webapp主目录(我想就是-Dcatalina.base=...)

    以下用%tmp1%代替C:\eclipse\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1;

    用记事本打开%tmp1%\conf\web.xml(和tomcat文件夹下的结构一样),这是配置虚拟目录的文件,我们可以找到host标签,没什么不同(这里appBase依旧是webapps,但是已经映射到了%tmp1%\wtpwebapps了),其实这些文件应该是先从Tomcat的conf文件夹里拷贝到这里,然后根据Eclipse的工程进行了修改,我们看。



    在下面就有了两个Context的虚拟目录项;是三个哦。。第一个指定了ROOT(这里面什么文件也没,所以无法访问http://localhost/),和工程没关系,第二个和第三个是我的hello和helloworld工程,看看,都有了docBase和相对url的path了吧。所以在浏览器中才能访问到hello和helloworld的jsp页面。








  




  
  
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-95294-1-1.html 上篇帖子: tomcat 启用Gzip 压缩进行优化 下篇帖子: JavaWeb学习总结(二)——Tomcat服务器学习和使用(一)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表