日期:2014-05-20  浏览次数:20625 次

折腾了半天实在是弄不好 会配置tomcat6的来指点一下啊 学历不限/年龄不限/性别不限/经验不限/身高体重五官都不限
tomcat安装路径C:\Program Files\Apache Software Foundation\Tomcat 6.0
\conf文件夹下包含这些文件:catalina.policy、catalina.properties、context.xml、logging.properties、server.xml、web.xmltomcat-users.xml
===================================================================================
server.xml文件内容:
XML code

  <Service name="Catalina">
 
    <Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" />
 
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

    <Engine name="Catalina" defaultHost="localhost">

      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
             resourceName="UserDatabase"/>

      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
      </Host>
    </Engine>
  </Service>
</Server>

context.xml文件内容
XML code
<Context>
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>

文件中被注释部分都省略了
===================================================================================
我现在看的书上是tomcat5.x介绍的 无法按照书上去配置 网上也没找到我想要的配置方法 英文不好 文档看不太懂 所以就有了这个帖子

我是新手 所以请尽量包涵我啰嗦的问题

我理解的默认配置的部分 理解不对的地方请纠正
默认的站点名称localhost
默认的存放站点的文件夹\Tomcat 6.0\webapps
问题1、没看见哪里设置ROOT文件夹,为什么http://localhost:8080/index.html访问的是webapps\ROOT文件夹下的index.html?

我喜欢把程序文件和自己保存的文件分开放 所以自己的文件都会放在非C盘 但是又喜欢保持原程序文件的完整性
问题2、如何映射一个虚拟根目录取代ROOT?例如我想让D:\myroot成为localhost的根目录,即http://localhost:8080/index.html访问的是D:\myroot下面的index.html;我不要把D:\myroot映射成ROOT/xxx,即http://localhost:8080/xxx/index.html访问的是D:\myroot下面的index.html。

问题3、如何新建个虚拟主机然后设置虚拟根目录?比如我要新建个名为myhost的虚拟主机,文件夹是D:\mysite,我知道要做的可能是在server.xml里新加个<Host>标签(别告诉我把localhost改为myhost,我不想把localhost改掉),name=myhost appBase="D:\mysite",那context.xml里的<context>标签怎么写,如果有多个<Host>,如何知道它对应的那个host。我想知道的是<Host>和<context>分开写不是嵌套在一起。如何设置才能http://myhost:8080/index.html访问的是D:\mysite下的index.html?

谢谢!

------解决方案--------------------
1, 去http://ftp.riken.jp/net/apache/tomcat/tomcat-6/v6.0.16/src/apache-tomcat-6.0.16-src.zip
dl个source看看就全明白了。

/**
* Given a context path, get the config file name.
*/
protected String getDocBase(String path) {
String basename = null;
if (path.equals("")) {
basename = "ROOT";
} else {
basename = path.substring(1);
}
return (basename);
}

也就是说,如果path为空,强制为ROOT!

2, 你可以改程序,同时把server.xml里面,appBase="webapps"给改了。
但是不建议你这么做,你似乎不知道http服务器和web应用服务器的区别。
通常真正运用时,tomcat前面有个apache。那么,http://localhost/index.html访问的是apache的东西。
http://localhost/xxx/index.html才是tomcat的东西。
当然,设置好之后,8080是关掉的,xxx的请求自动转到tomcat.对apache公开的是<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
所以你根本用担心外面会访问到http://localhost:8080/index.html

3, 没试过,不知道。不过<Engine name="Catalina" defaultHost="localhost">
你有多个host的话,defaultHost可能要改。

------解决方案--------------------
你得把context.xml 清空!