Tomcat虚拟目录设置

tomcat 安装好之后,只需要把你的程序包放到$Tomcat_Home$/webapps下就可以直接使用了。这样会使webapps越来越大就需要设置虚拟目录:
1.单个应用设置(为你的单个项目设置虚拟目录):
 在<Host>和</host>之间加上
 <Context path="/site" docBase="d:/site" reloadable="true" debug="0">
 </Context>
 参数:path 表示在浏览器中输入 http://localhost:8080/site
 docBase表示你的程序包的物理绝对路径,默认的绝对路径是$Tomcat_Home$/webapps
 这样设定了之后会在$tomcat_home$/conf/catalina/localhost目录下生成一个site.xml文件,此文件的内容就是刚才设置的内容。
2.通过前面我们知道了在$tomcat_home$/conf/catalina/localhost目录下会生成相应的配置文件,因此我们可以直接在$tomcat_home$/conf/catalina/localhost目录下写配置文件文件名任意取,最好是跟你的web应用相同便于管理,如site.xml内容同上
<Context path="/site" docBase="d:/site" reloadable="true" debug="0">
 </Context>
3.更改整个根目录(为你的所有项目设置虚拟目录):
  在$tomcat_home$/conf/server.xml中找到<Host name="localhost" debug="0" appBase="webapps"
  unpackWARs="true" autoDeploy="true">
 将appBase的设置成期望的路径(绝对路径)
 出现的问题:输入: http://localhost:8080/没有出现默认的页面
 原因当然是更改了路径造成的。解决也很简单了,把文件拷过来,或者再把原来默认的设成虚拟路径。
在调试过程中你也许会遇到这样的错误:
严重: Error starting static Resources
java.lang.IllegalArgumentException: Document base E:/Tomcat 5.0/webapps/balancerd does not exist or is not a readable directory
 at org.apache.naming.resources.FileDirContext.setDocBase(FileDirContext.java:138)
 at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:3910)
 at org.apache.catalina.core.StandardContext.start(StandardContext.java:4138)
 at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:823)
 at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)
 at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:595)
 at org.apache.catalina.core.StandardHostDeployer.addChild(StandardHostDeployer.java:903)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:216)
 at org.apache.commons.digester.SetNextRule.end(SetNextRule.java:256)
 at org.apache.commons.digester.Rule.end(Rule.java:276)
 at org.apache.commons.digester.Digester.endElement(Digester.java:1058)
 at org.apache.catalina.util.CatalinaDigester.endElement(CatalinaDigester.java:76)
 at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
 at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source)
 at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
 at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
 at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
 at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
 at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
 at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
 at org.apache.commons.digester.Digester.parse(Digester.java:1567)
 at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:488)
 at org.apache.catalina.core.StandardHost.install(StandardHost.java:863)
 at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:483)
 at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:427)
 at org.apache.catalina.startup.HostConfig.checkContextLastModified(HostConfig.java:800)
 at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1085)
 at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:327)
 at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
 at org.apache.catalina.core.StandardHost.backgroundProcess(StandardHost.java:800)
 at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1619)
 at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1628)
 at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1608)
 at java.lang.Thread.run(Thread.java:619)
这是因为在你的$tomcat_home$/conf/Catalina/localhost下对balancerd 这个项目设置虚拟目录的.xml文件指定这个项目的路径不对所造成的把路径改对了该错误消失!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Tomcat虚拟目录是通过使用Tomcat服务器的Context容器来实现的。虚拟目录允许将外部资源映射到Tomcat服务器上,使其可以通过HTTP协议访问。下面是一种配置虚拟目录的方法: 1. 在Tomcat的conf目录下的文件server.xml中,找到<Host>标签,即配置虚拟主机的部分。在该标签中,可以添加<Context>元素来配置虚拟目录。例如,假设要将虚拟目录映射到名为“/myapp”的外部目录,可以在<Host>标签内添加如下的<Context>元素: ```xml <Context path="/myapp" docBase="/path/to/external/directory" /> ``` 其中,`path`属性指定了虚拟目录的URL路径,`docBase`属性指定了外部目录的绝对路径。 2. 保存并重新启动Tomcat服务器。此时,Tomcat会自动将指定的外部目录映射为虚拟目录,使其可通过HTTP访问。 使用此方式映射虚拟目录的好处是,无需重启Tomcat服务器即可在配置文件中进行修改。例如,将`/myapp`修改为`/newapp`,Tomcat服务器会自动卸载旧的配置并加载新的配置文件。 需要注意的是,虚拟目录的配置可以在Tomcat的全局配置文件(如server.xml)中进行,也可以在每个Web应用程序的上下文配置文件(如META-INF/context.xml)中进行。具体选择哪个配置位置取决于你的需求和环境。 综上所述,Tomcat虚拟目录可以通过在Tomcat的配置文件中添加<Context>元素来实现,从而将外部资源映射为可通过HTTP访问的虚拟目录

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值