Tomcat去除端口号和项目名4200字
Tomcat去除端口号和项目名4200字 在一个项目结束的时候,往往根据需要直接映射到一个IP地址上。此时就需要去除端口和项目名了,在访问的时候。下面根据具体的例子提供一种实现方法。1.在进入TOMCAT_HOME,创建文件夹,将其命名为webdb(此处为webdb,根据需要可以修改成为其它的名称。)。2.进入webdb文件夹,并在其中创建ROOT(其中ROOT要大写)文件夹,将你的项目中的内容全部拷背到ROOT下面。然后进入TOMCAT_HOMEwebapps,将balancer文件夹拷背到webdb文件夹下。3.在TOMCAT_HOMEconfserver.xml中,找到如这句话:<host name="localhost" appbase="webapps"></host> unpackWARs="true" autoDeploy="true"xmlValidation="false" xmlNamespaceAware="false">然后替换appBase="webapps"中的webapps用webdb。<host name="localhost" appbase="webdb"></host> unpackWARs="true" autoDeploy="true"xmlValidation="false" xmlNamespaceAware="false">4.这样的话,在访问该项目时,就可以用去掉项目名称的URL来访问了。5.去除端口号就不用详细说了吧。就是打开TOMCAT_HOMEconfserver.xml中查找原始的端口号(如8080),修改为80后,即可在访问时不用输入端口号。不过要注意防止其它程序占用80端口。6.可能有的朋友会说,为什么不删除webapps中的ROOT中的内容,然后将项目拷背到ROOT中呢,这样的话,同样可以达到想要的效果。关于这点我是这样认为的,其实方法多的是。条条大路通罗马。这样做的好处还有一个就是在用TOMCAT控制台时,可以很文便的将目录修改回来。Tomcat虚拟主机配置方案(域名解析)For Windows/Linux(最完全版)一、打开tomcat安装目录下conf/server.xml这个文件在server.xml文档中找到</Engine></Service>接着添加上面添加以下内容(暂时先说分为三种方式):第一种:<Host name=".cn" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"><Context path="" docBase="www" debug="0" reloadable="true" crossContext="true"/><Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="www_5sai_log." suffix=".txt"timestamp="true"/></Host>以上的内容就是在Tomcat的webapps目录下新建一个www文件夹作为.cn这个域名的主目录第二种:<Host name=".cn" debug="0" appBase="C:testwww" unpackWARs="true" autoDeploy="true"><Context path="" docBase="."/><Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="test_5sai_access_log."suffix=".txt" pattern="common" resolveHosts="false"/><Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="test_5sai_log." suffix=".txt" timestamp="true"/> </Host>以上内容的意思就是在C盘test文件夹下面建立一个www文件夹作为.cn这个域名的主目录第三种,如果是linux系统的/var/www作为.cn这个域名的主目录的话内容如下:<Host name=".cn" debug="0" appBase="/var/www" unpackWARs="true" autoDeploy="true"><Context path="" docBase="."/><Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="test_5sai_access_log."suffix=".txt" pattern="common" resolveHosts="false"/><Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="test_5sai_log." suffix=".txt" timestamp="true"/> </Host>再补充一种<Host name=".cn" debug="0" unpackWARs="true"><Valve className="org.apache.catalina.valves.AccessLogValve"directory="/var/log/tomcat" prefix="www_5sai_access_log." suffix=".txt"pattern="common"/><Logger className="org.apache.catalina.logger.FileLogger" directory="/var/log/tomcat" prefix="www_5sai_log." suffix=".txt"timestamp="true"/><Context path="" docBase="/var/www" debug="0" reloadable="true"/></Host>域名.cn 的主目录为/var/www 该站点的所有访问LOG放在/ar/log/tomcat里面测试:windows用户打开C:WINDOWSsystem32driversetc的hosts这个文件,linux用户打开/ect的hosts文件或者vi /ect/hosts修改内容如下127.0.0.1 localhost127.0.0.1 .cn127.0.0.1 .cn然后打开浏览器直接输入网址测试!第二篇:tomcat部署多个项目 6400字tomcat部署多个项目最近有个项目需要在tomcat部署多个项目:(个人解决方案)第一种:在host中加: <Host name="localhost" appBase="webapps"unpackWARs="true" autoDeploy="true"xmlValidation="false" xmlNamespaceAware="false"><Context path="/xfpm222" docBase="D:runningXfpm2" debug="0" reloadable="true"> <Resource name="jdbc/Oraclexfpm222" auth="Container"type="javax.sql.DataSource" maxActive="100" maxIdle="50" maxWait="-1" username="xfpm2"password="xfpm2" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:162.8.156.40:1521:orcl"/> </Context></Host>报错1: java.lang.IllegalStateException: Web app root system property already set to dif ferent value: 'webapp.root' = D:runningXfpm2 instead of C:Program FilesT omcat 5.5webappsXfpm2 - Choose unique values for the 'webAppRootKey' context -param in your web.xml files!at org.springframework.web.util.WebUtils.setWebAppRootSystemProperty(Web Utils.java:132)at org.springframework.web.util.Log4jWebConfigurer.initLogging(Log4jWebC onfigurer.java:118).解决1:是两个项目的设置重复了,导致出错,但我发现web.xml里并没有配置webAppRootKey项,然后查阅网上资料,原来是因为如果没有web.xm 内没有设置webAppRootKey项,是为默认设置public static void setWebAppRootSystemProperty(ServletContext servletContext)throws IllegalStateException String param = servletContext.getInitParameter(WEB_APP_ROOT_KEY_PARAM); String key = (param != null ? param : DEFAULT_WEB_APP_ROOT_KEY); String oldValue = System .getProperty(key);if (oldValue != null ) throw new IllegalStateException ("WARNING: Web app root system property already set: " + key + " = " +oldValue + " - Choose unique webAppRootKey values in your web.xml files!" ); String root = servletContext.getRealPath("/" );if (root = null ) throw new IllegalStateException ("Cannot set web app root system property when WAR file is not expanded");System .setProperty(key, root);servletContext.log("Set web app root system prope