• eclipse 对tomcat访问的映射


    1. 上下文 主要介绍eclipse 创建tomcat 对 访问路径的处理

        关键xml: 标签: Context   (上下文)  属性: doBase (绝对路径) path (访问路径)

    2.-Dcatalina.base="E:workspace.metadata.pluginsorg.eclipse.wst.server.core mp0"  

        :指向每个tomcat目录私有的信息,就是 conf ,logs,webapps,work ,temp 的路径

       -Dcatalina.home="E:work_resourceapache-tomcat-7.0.56" :安装目录,指向公共信息的位置

       -Dwtp.deploy="E:workspace" :工作空间

       -Djava.endorsed.dirs="E:work_resourceapache-tomcat-7.0.56endorsed" :可用于覆盖jdk本身的类,此处优先加载

       

    首先,在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/server .xml(和tomcat文件夹下的结构一样),这是配置虚拟目录的文件,我们可以找到host标签,没什么不同(这里appBase依旧是webapps,但是已经映射到了%tmp1%/wtpwebapps了),其实这些文件应该是先从Tomcat的 conf文件夹里拷贝到这里,然后根据Eclipse的工程进行了修改,我们看。 
    <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false"> 
        在下面就有了两个Context的虚拟目录项;是三个哦。。第一个指定了ROOT(这里面什么文件也没,所以无法访问http://localhost /),和工程没关系,第二个和第三个是我的hello和helloworld工程,看看,都有了docBase和相对url的path了吧。所以在浏览器中才能访问到hello和helloworld的jsp页面。 
        

    <Context docBase="C:/eclipse/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/ROOT" path="" reloadable="false"/> 


    <Context docBase="C:/eclipse/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/HelloWorld" path="/HelloWorld" reloadable="true" source="org.eclipse.jst.jee.server:HelloWorld"/> 


    <Context docBase="C:/eclipse/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/hello" path="/hello" reloadable="true" source="org.eclipse.jst.jee.server:hello"/></Host>

    参考:http://blog.csdn.net/xys_777/article/details/6594755

  • 相关阅读:
    结合中断上下文切换和进程上下文切换分析Linux内核的一般执行过程
    深入理解Linux系统调用
    基于mykernel 2.0编写一个操作系统内核
    如何评测软件工程知识技能水平?
    创新产品的需求分析:未来的图书会是什么样子?
    案例分析:设计模式与代码的结构特性
    业务领域建模Domain Modeling
    工程实践用例建模
    分析一套源代码的代码规范和风格并讨论如何改进优化代码
    面向对象第三单元作业反思与总结
  • 原文地址:https://www.cnblogs.com/xiaohuBlog/p/6855609.html
Copyright © 2020-2023  润新知