如何正确的将J2ee项目部署到Tomcat

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何正确的将J2ee项目部署到Tomcat相关的知识,希望对你有一定的参考价值。

1.打开配置文件(我的如下:C:\\Program Files\\Apache Software Foundation\\Tomcat 7.0\\conf\\server.xml),找到:

<Connector port="8080" protocol="HTTP/1.1" 
              maxThreads="150" connectionTimeout="20000"  
              redirectPort="8443" />   
<Connector port="8080" protocol="HTTP/1.1"
             maxThreads="150" connectionTimeout="20000"
             redirectPort="8443" />

修改如下:

<Connector port="80" protocol="HTTP/1.1"   
              maxThreads="150" connectionTimeout="20000"   
              redirectPort="8443" />   
<Connector port="80" protocol="HTTP/1.1"
             maxThreads="150" connectionTimeout="20000"
             redirectPort="8443" />  
  

把port:8080,修改成port:80就可以了,其他的参数不变。这样客户机在访问服务器时直接输入IP或域名就可以了

 

2.修改tomcat的字符对应乱码问题

Connector port="80" protocol="HTTP/1.1" 
              maxThreads="150" connectionTimeout="20000" 
              redirectPort="8443" /> 
<Connector port="80" protocol="HTTP/1.1"
             maxThreads="150" connectionTimeout="20000"
             redirectPort="8443" />

修改为

<Connector port="80" protocol="HTTP/1.1"  
              maxThreads="150" connectionTimeout="20000"   
              redirectPort="8443" URIEncoding="UTF-8"/>  
<Connector port="80" protocol="HTTP/1.1"
             maxThreads="150" connectionTimeout="20000"
             redirectPort="8443" URIEncoding="UTF-8"/>

 

修改tomcat发布路径(默认路径:C:\\Program Files\\Apache Software Foundation\\Tomcat 7.0\\webapps\\ROOT)
打开配置文件(我的在:C:\\Program Files\\Apache Software Foundation\\Tomcat 7.0\\conf\\server.xml),找到:

<Engine name="Catalina" defaultHost="localhost">   
<Host name="localhost"   appBase="webapps"  
             unpackWARs="true"  
             xmlValidation="false" xmlNamespaceAware="false">         
</Host>   
</Engine>  

 

在<host></host>标签之间添加上:

<Context path="" docBase="rms" debug="0" reloadable="true" />  
<Context path="" docBase="项目路径" debug="0" reloadable="true" />

 

docBase是虚拟目录的路径,它默认的是$tomcat/webapps/ROOT目录,现在我在webapps目录下建了一个photo目录,让该目录作为我的默认目录。debug和reloadable一般都分别设置成0和true。 
这样,再访问服务器时就找$tomcat/webapps/rms下的页面了.

3.多域名绑定

<Engine name="Catalina" defaultHost="localhost">   
<Host name="localhost"   appBase="webapps"  
             unpackWARs="true"  
             xmlValidation="false" xmlNamespaceAware="false">         
     </Host>   
</Engine> 

 

A:多个工程在不同的目录下

<Engine name="Catalina" defaultHost="pic.jb51.net">   
     <Realm className="org.apache.catalina.realm.UserDatabaseRealm"  
              resourceName="UserDatabase"/>   
     <Host name="xixi.jb51.net"   appBase="abcapps"  
             unpackWARs="true"  
             xmlValidation="false" xmlNamespaceAware="false">   

</Host>  
<Engine name="Catalina" defaultHost="pic.jb51.net">
    <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
             resourceName="UserDatabase"/>
    <Host name="xixi.jb51.net"  appBase="abcapps"
            unpackWARs="true"
            xmlValidation="false" xmlNamespaceAware="false">
</Host>
     <Host name="haha.jb51.net"   appBase="D:\\Program Files\\Tomcat\\test"  
            unpackWARs="true"  
             xmlValidation="false" xmlNamespaceAware="false">   
</Host>   
     <Host name="lala.jb51.net"   appBase="webapps"  
             unpackWARs="true"  
             xmlValidation="false" xmlNamespaceAware="false">   
     </Host>   
</Engine>  
<Host name="haha.jb51.net"  appBase="D:\\Program Files\\Tomcat\\test"
            unpackWARs="true"
            xmlValidation="false" xmlNamespaceAware="false">

</Host>
    <Host name="lala.jb51.net"  appBase="webapps"
            unpackWARs="true"
            xmlValidation="false" xmlNamespaceAware="false">
    </Host>
</Engine>

 

测试在C:\\WINDOWS\\system32\\drivers\\etc下的hosts文件中添加如下内容: 
127.0.0.1 xixi.jb51.net 
127.0.0.1 lala.jb51.net 
127.0.0.1 haha.jb51.net

按照上面的配置: 
1. http://xixi.jb51.net 访问 ${tomcat}\\ abcapps\\ROOT 下的网站 
2. http://haha.jb51.net 访问 D:\\Program Files\\Tomcat\\test\\ROOT 下的网站 
3. http://lala.jb51.net 访问 ${tomcat}\\webapps\\ROOT 下的网站.

Engine的dafaultHost:表示访问该tomcat默认进入的主机,注意一定不能是localhost,不然别人通过你的ip访问,就会默认进入tomcat的管理界面. 
Host 的 name:表示该主机绑定的域名,如果绑定localhost则可以通过在浏览器中输入localhost访问该Host. 
Host的 appBase:表示该主机绑定的文件存放路径,可以使用相对路径或绝对路径.

B:多个工程在同一目录webapps下,即在不同的<host></host>里面配<Context>

<Engine name="Catalina" defaultHost="xixi.jb51.net">   
     <Realm className="org.apache.catalina.realm.UserDatabaseRealm"  
         resourceName="UserDatabase"/>   
     <Host name="xixi.jb51.net"   appBase="webapps"  
         unpackWARs="true"  
         xmlValidation="false" xmlNamespaceAware="false">   
        <Context path="" docBase="test1" debug="0" reloadable="true" />   
</Host>   
<Host name="haha.jb51.net"   appBase="webapps"  
         unpackWARs="true"  
         xmlValidation="false" xmlNamespaceAware="false">   
        <Context path="" docBase="test2" debug="0" reloadable="true" />   
</Host>   
<Host name="lala.jb51.net"   appBase="webapps"  
         unpackWARs="true"  
         xmlValidation="false" xmlNamespaceAware="false">   
        <Context path="" docBase="test3" debug="0" reloadable="true" />   
</Host>

文章作者:吻上明天

以上是关于如何正确的将J2ee项目部署到Tomcat的主要内容,如果未能解决你的问题,请参考以下文章

j2ee 项目部署指引

JavaWeb项目如何部署到tomcat(手工)

项目部署到tomcat上,tomcat能正常启动,为啥却无法访问?

Eclipse+Maven远程部署项目到Tomcat中

struts2 怎么部署到tomcat

eclipse中j2ee(struts2)部署及相关问题释疑