Tomcat如何配置去项目名称访问.doc

相关资料:

1.  http://hi.baidu.com/dobaibai/item/4cf925818faad25f850fab11  多域名访问配置步骤

2.  http://zhidao.baidu.com/question/541651557.html配置后http://localhost:8080

   仍是访问TOMCAT主页问题解决

3.  http://lhp--2006.iteye.com/blog/1139064  TMOCAT启动,虚拟机内存不足问题解决

 

任务目标:

两个项目《易汇》《体系管理》部署在同一服务器中,并易汇不通过项目名称访问,而体系管理通过“/qc”访问,效果如下:

http://localhost:8080 访问易汇管理系统

http://localhost:8080/qc/  访问体系管理系统

 

 

解决过程与遇到问题:

刚开始尝试时候,参照相关资料 连接1配置方式,进行模仿。

 

1.先解决只部署一个项目时,去除项目名称访问该项目

 

找到D:\apache-tomcat-6.0.39\conf\server.xml配置文件,并在

<Host name="localhost"  appBase="webapps"

            unpackWARs="true"autoDeploy="true"

            xmlValidation="false"xmlNamespaceAware="false">

</Host>

标签中插入

<Context path=""docBase="D:\\project\\dcms" reloadable="true"debug="0">

</Context>

效果:

<Host name="localhost"  appBase="webapps"

            unpackWARs="true"autoDeploy="true"

            xmlValidation="false"xmlNamespaceAware="false">

<Contextpath="" docBase="D:\\project\\dcms" reloadable="true"debug="0">

</Context>

</Host>标签中插入

在Context标签中path属性是相当于起到项目别名的作用,比如path=”/qc” 就可解决任务目标中的第二条连接访问,docBase就是项目在的物理路径(刚开始对这个“项目”物理路径理解很模糊,网上也没有太详细的说法,导致了第一次的错误),reloadable这个属性就是自动部署,“true”为自动部署;debug 调试消息等级,0最低,9最高,越高信息越多。

 

当进行实际操作时,我发现,我对docBase这个所谓的“项目物理路径”根本就没概念,他是直接是我Myeclipse中正在开发调试的项目呢,还是一个已经完成了的项目呢?

我需要的是直接就关联到我正在Myeclipse中的项目里,网上找的资料基本都是直接关联一个已经完成了的项目。在大量的搜索资料后,我自己逐渐有了这个概念:这个“项目物理路径”其实是完成后的项目的路径,并不是想象中的Myeclipse中的项目路径。但是要是我就是指向开发工具中的项目啊,于是我决定尝试。

其中我Myeclipse调试的项目的物理路径是:D:\myWork\ws\DevelopCenterManageSystem2

于是我将Context标签中的docBase属性做了改变,效果:

<Context path=""docBase="D:\\myWork\\ws\\DevelopCenterManageSystem2"

reloadable="true" debug="0">

</Context>

当做了以上修改后,我启动TOMCAT,发现根本就没有将项目部署进去,myeclipse控制台根本就没有任何部署启动该项目的信息。所以,myeclipse中的项目路径并不是我需要的,于是又开始上网查找,在无意间,终于找到了,其实就是一级之差,docBase 需要的是myeclipse中的WebRoot这个目录,其实仔细想想也能明白,编译后的文件和页面文件都是存放于这个目录之下,服务器需要的不正是这些么。于是修改配置:

<Context path=""docBase="D:\\myWork\\ws\\DevelopCenterManageSystem2\\WebRoot"

reloadable="true" debug="0">

</Context>

修改完成后,再一次启动TOMCAT,控制台终于刷出一片信息,项目终于通过修改配置文件自动部署了。

第一个小目标最终配置效果:

<Host name="localhost"  appBase="webapps"

            unpackWARs="true"autoDeploy="true"

            xmlValidation="false"xmlNamespaceAware="false">

<Context  path=""

docBase="D:\\myWork\\ws\\DevelopCenterManageSystem2\\WebRoot"reloadable="true" debug="0">

</Context>

</Host>

 

查看调试信息,没有报错,启动成功,然后在浏览器中输入:http://localhost:8080

但是发现跳转的页面仍然是TOMCAT的那个主页,但是项目明明部署了,而且path中设置的也是“”,照理说是应该跳转到项目的主页啊,于是继续上网找解决办法。

 

最后发现资料链接2中给出了解决办法,那就是删除

D:\apache-tomcat-6.0.39\webapps\ROOT这个文件夹,于是我首先是删除了ROOT这个文件夹,发现仍然行不通,访问的仍是TOMCAT的主页,我尝试过清除缓存等方法,还是没用,于是就想到,是不是因为webapps这个目录下的其他文件夹影响了呢?于是我将webapps目录下的文件夹都清空了,启动后就报错了,而且还提示某某某文件不存在,找不到之类,于是我恢复了webapps文件夹(记得备份个TOMCAT,反正也不大),经过尝试

只保留红框中的文件夹就行。

最后重启TOMCAT,用http://localhost:8080  访问,成功访问项目主页,第一个小目标完成。

 

2.部署两个项目,第二个项目使用http://localhost:8080/qc/ 访问

直接开门见山,

第一次尝试模仿修改配置文件成

 

<Host name="localhost" appBase="webapps"

            unpackWARs="true"autoDeploy="true"

            xmlValidation="false"xmlNamespaceAware="false">

<Context  path=""

docBase="D:\\myWork\\ws\\DevelopCenterManageSystem2\\WebRoot"reloadable="true" debug="0">

</Context>

</Host>

<Host name="127.0.0.1" appBase="webapps2"<!--这个设置成webapps2-->

           unpackWARs="true"autoDeploy="true"

            xmlValidation="false"xmlNamespaceAware="false">

<Context  path="/qc"

docBase="D:\\myWork\\ws\\NT_MS_mysql\\WebRoot"reloadable="true"debug="0">

</Context>

</Host>

 

启动TOMCAT时,报了个错误

我一直纠结于第一行,然后百思不得其解,查找各种资料,纠结各种尝试,其实真正的错误是最后一行“java.lang.OutOfMemoryError”,虚拟机内存不足,解决方法在链接3,直接在Myeclipse中Window—Preferences—Myeclipse—Servers—tomcat5.x—JDK的Optional JavaVM arguments配置为:
-Xms256m -Xmx512m -XX:MaxNewSize=256m -XX:MaxPermSize=256m

 

修改后,启动TOMCAT成功,但是在访问时出现了问题,发现我只能这样访问这两个系统,即在配置文件中的localhost 和127.0.0.1是不一样的,并不是想象中的localhost 等于127.0.0.1,于是我只能这么访问

http://localhost:8080 访问易汇管理系统

http://127.0.0.1:8080/qc/  访问体系管理系统

思考后,了解到,以上的配置方法,其实是配置两个不同域名分别访问两个不同项目,并不是我所需要的,同一个“localhost ”域名访问两个项目,而Host标签中的name是唯一的,不能重名。

于是经过尝试,又修改了配置文件,效果如下:

<Host name="localhost" appBase="webapps"

            unpackWARs="true"autoDeploy="true"

            xmlValidation="false"xmlNamespaceAware="false">

<Context  path=""

docBase="D:\\myWork\\ws\\DevelopCenterManageSystem2\\WebRoot"reloadable="true" debug="0">

</Context>

<Context  path="/qc"

docBase="D:\\myWork\\ws\\NT_MS_mysql\\WebRoot"reloadable="true"debug="0">

</Context>

</Host>

就是在同一个<Host></Host>标签中,配置两个<Context></Context>,需要注意的是,同个Host标签中的Context标签中的path不能重名,要么会启动失败报错。

 

修改后启动TOMCAT,终于实现了任务目标

http://localhost:8080 访问易汇管理系统

http://localhost:8080/qc/  访问体系管理系统

但是访问是能访问了,新的问题又出现了,那就是项目主页中的页面并不显示,在浏览器的调试工具中报这些错:

一个框架文档的字符编码未声明。该文档可能与非框架时的显示效果不同。”还有一个是图片的路径错误。

 

这两个错误的共同点是,报错的都是在WebRoot根目录下的文件,这个查找资料无果,无能为力........................

 

为了查看最后效果,用了个笨办法,那就是和使用myeclipse将两个项目部署,然后在Tomcat中的webapps目录下拷贝这两个经过工具部署的项目放到其他文件夹,我是放到:D:\project下,于是我的配置文件修改成了:

<Host name="localhost" appBase="webapps"

            unpackWARs="true"autoDeploy="true"

            xmlValidation="false"xmlNamespaceAware="false">

<Context  path=""

docBase="D:\\project\\dcms" reloadable="true"debug="0">

</Context>

<Context  path="/qc"

docBase="D:\\project\\ms_mysql"reloadable="true"debug="0">

</Context>

</Host>

 

很神奇的是,经过工具部署的项目,再经过手动搬运到其他地方,成功的启动,访问了,而且并没有出现之前的错误。

到此,任务目标可以说是达成了。

 

 

 

 

 

 

 

你可能感兴趣的:(Tomcat如何配置去项目名称访问.doc)