Tomcat 虚拟路径配置

    技术2025-04-04  11

    Tomcat虚拟路径配置,参考地址:

    http://www.fengfly.com/plus/view-64486-1.html

     

    自己亲自试验总结如下:

    Server.xml如下

    <?xml version='1.0' encoding='utf-8'?>

    <Server port="8005" shutdown="SHUTDOWN">

      <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />

      <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />

        <Resource name="UserDatabase" auth="Container"

                  type="org.apache.catalina.UserDatabase"

                  description="User database that can be updated and saved"

                  factory="org.apache.catalina.users.MemoryUserDatabaseFactory"

                  pathname="conf/tomcat-users.xml" />

      </GlobalNamingResources>

      <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="D:/project2/yyy/WebRoot"

                unpackWARs="true" autoDeploy="true"

                xmlValidation="false" xmlNamespaceAware="false">

                                <Context docBase="" path=""/>

          </Host></Engine></Service></Server>

    修改的时候,可以直接修改

    <Host name="localhost"  appBase="D:/project2/yyy/WebRoot"

    unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">

    中的内容,把host 的name可以任意修改。

    配置tomcat默认字符集修改这个:

     <Connector port="8080" protocol="HTTP/1.1"               connectionTimeout="20000"               redirectPort="8443"  URIEncoding="UTF-8" useBodyEncodingForURI="true" />

    如果为本地的地址,但又想部署好多个项目,这可以直接这样用:

    <Host name="www.wangbing.cn"  appBase="D:/project2/yyy/WebRoot"

    unpackWARs="true" autoDeploy="true"xmlValidation="false" xmlNamespaceAware="false">

    <Context docBase="" path=""/>//这行东西不能去掉,否则出错。</Host>

    如果path给定值,例如:path=”wang”,则登录的时候为 http://www.wangbing.cn:8080/wang/...

    如果为path=””,则可以直接输入:http://www.wangbing.cn:8080/.....

    (yyy为一个项目,WebRootEclipse创建的项目的web根路径,如果自己改名字,则填写自己的名字。将$TOMCAT$/webapps/路径下的host­-manager文件包以及manager文件包拷到yyy/WebRoot/目录下)

    上边的host name就是这个作用。appBase=””,后边的为项目所在目录,但必须写到WEB-INF目录上一层

    做完这些工作,还要做一下如下:打开运行——》输入c:/WINDOWS/system32/drivers/etc 回车,找到hosts文件,打开hosts文件,输入如下:

    127.0.0.1       localhost

    127.0.0.1       www.langtoo.com

    74.125.39.99              docs.google.com

    127.0.0.1       www.wangbing.cn

    这样,就可以拥有无数个项目同时运行在一个host中,仅仅如要在host name 修改为www.wangbing.cn即可。

    异常信息:

    "javax.naming.NameNotFoundException: Name jdbc is not bound in this Context"解决方法:在tomcat 文件夹下找到   conf/context.xml文件,然后再context中加入如下配置:

    <Context>    <!-- Default set of monitored resources -->    <WatchedResource>WEB-INF/web.xml</WatchedResource>        <!-- Uncomment this to disable session persistence across Tomcat restarts -->    <!--    <Manager pathname="" />    -->    <!-- Uncomment this to enable Comet connection tacking (provides events         on session expiration as well as webapp lifecycle) -->    <!--    <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />    -->    <Resource name="jdbc/langtoo" auth="Container" type="javax.sql.DataSource"                    maxIdle="30" maxActive="10" maxWait="10000" username="root" password="langtoo"                     driverClassName="com.mysql.jdbc.Driver"                             url="jdbc:mysql://localhost:3306/langtoo"/></Context>

    还有在web.xml 中配置如下:

    < resource-ref>        <description>MYSQL SERVER DATASOURCE</description>        <res-ref-name>jdbc/langtoo</res-ref-name>        <res-type>javax.sql.DataSource</res-type>        <res-auth>Container</res-auth>    </resource-ref>

    还有可能出现如下情况:org.apache.jasper.JasperException: File "/struts-tags" not found检查半天,没发现包和别的东西有问题,最后发现,如果倒入了struts-tags,但是没有使用,会导致此问题。这个问题不在于此,最终还是在于路径的问题,最好的方法是不直接在浏览器地址栏窗口上输入jsp的路径,而是用action间接的引导到相应的jsp文件,这样就可以解决这个问题。还有一个情况:就是在tomcat中,struts.xml的第一个字母S不能大写,不然也报错

    最新回复(0)