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为一个项目,WebRoot为Eclipse创建的项目的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不能大写,不然也报错