当前位置:web 服务器 > Tomcat >>

java 多个网站的配置tomcat

多个java网站需要挂在一个服务器上,请问大家在tomcat6中的server.xml中如何配置。
补充:配置好了之后能通过域名直接访问,但是访问不来别的页面除了主页,我的配置如下:<Host name="pukang.cn" appBase="E:\workspace\pukang\WebRoot" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Alias>pukang.cn</Alias> <Alias>www.pukang.cn</Alias> <Context path="/" docBase="E:\workspace\pukang\WebRoot"></Context> </Host>然后就直接通过域名访问之后就只能访问到主页,而其它的页面都是500的错误。我不知道错误出现在那里,如果我把 <Context path="/" docBase="E:\workspace\pukang\WebRoot"></Context>中的/改为/pukang,然后输入域名pukang.cn/pukang就可以很好的访问。请高手指点!
追问:我设置成功了,就是出现了没法访问下级目录了,唯独主页可以访问,而其它的页面都是500的错误
答案:TOMCAT配置 
     $TOMCAT\conf下是Tomcat的配置文件,最重要的配置文件是Servler.xml。Server.xml可以重新指定,方式是catalina.bat –config,比如指定config.xml取代Servler.xml,命令如下: 
     catalina.bat run –config conf\config.xml 
     Server.xml中可以配置部署应用需要的所有信息,从Tomcat5开始,应用配置可以从Server.xml独立出来,这也是 Tomcat现在所推荐的配置方式,带来的一个好处,显而易见,更容易维护了。另一个好处,是在Servler.xml的修改,只能通过重启Tomcat 才能发生作用,分拆后,修改完成,可以不用重启Tomcat就发生作用。本文就采用这种配置方式。下面进行详细的介绍。 
     (1) 端口的修改 
     Server元素下可以有多个Service,端口就是在Service元素下配置的。Connector元素的配置如下: 

Xml代码 <Connnector port=”8080” protocal=”HTTP/1.1” connectionTimeout=”20000” redirectPort=”8443”/>        <Connnector port=”8080” protocal=”HTTP/1.1” connectionTimeout=”20000” redirectPort=”8443”/>
     其中protocal制定了该端口侦听的协议类型,HTTP/1.1表示侦听的是客户的HTTP请求,即我们通过浏览器访问需要输入的端口,当端口号是80的时候,可以不用在浏览器地址栏输入端口号,这就是我们访问很多网站不需要指定端口的原因。有时候protocal没有指定,这时候默认的是HTTP/1.1。注意这个端口必须是闲置的。 
     Service下面可以配置多个端口,用于侦听不同的协议。 
     (2) 虚拟主机 
     Service元素下必须有一个Engine元素,Engine有一个名称,和一个默认的虚拟主机名,形式如下: 

Xml代码 <Engine name="Catalina" defaultHost="localhost">        <Engine name="Catalina" defaultHost="localhost">
     虚拟主机就配置在Engine元素下。形式如下: 

Xml代码 <Host name="localhost"  appBase="webapps"                  unpackWARs="true" autoDeploy="true"                  xmlValidation="false" xmlNamespaceAware="false">       </Host>   <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
 </Host>
     name是虚拟主机的名字,appBase是虚拟主机指向的目录,Tomcat启动时,会自动加载appBase下的应用。 unpackWARs表示是否自动解压缩appBase下已打成WAR包的应用,autoDeploy表示在服务器运行的时候,将一个应用放入 appBase下,是否自动部署。 
Tomcat应用部署 
     应用可以配置在Server.xml中,这里介绍分拆后的配法。 
     应用的独立配置文件应该配置在路径$TOMCAT\conf\engineName\hostName\下,其中engineName是应用所在的Engine的名字,对于本例而言是Catalina,hostName是应用所在的虚拟主机的名字,本例为localhost。配置文件的名字是这样约定的:如果访问路径就在虚拟主机下,那么名字为ROOT,如:ROOT.xml,其他情况下,文件名就是访问路径,不过需要用#替换路径中的/。本例中访问路径为/struts,相应的文件名是struts.xml,内容如下: 

Xml代码 <Context docBase="C:/WAP/struts" reloadable="true"/>        <Context docBase="C:/WAP/struts" reloadable="true"/>
     其中docBase指定应用所在的目录,如果是相对目录,对应的就是虚拟主机下appBase的目录,也可以是绝对目录,这个时候应用在什么地方都可以。reloadable表示是否支持热部署,比如class更新,如果reloadable为true,应用会重新部署。注意:在分拆后, Context的path属性将不再起作用,这是Tomcat6和之前的版本不同的地方。 
     以上配置完成,我们就可以访问应用了,访问地址是http://localhost:8080/struts 
     下面介绍资源的配置 
    这里指的主要是数据源的配置。Tomcat6使用的是DBCP数据源,它的配置方式如下: 

Xml代码 <Resource name="jdbc/test" auth="Application" type="javax.sql.DataSource" maxActive="100"      maxIdle="30" maxWait="10000" username="sa" password="123456" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"      url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test"/>          <Resource name="jdbc/test" auth="Application" type="javax.sql.DataSource" maxActive="100"
       maxIdle="30" maxWait="10000" username="sa" password="123456" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
       url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test"/>
     它可以直接配置在Context元素下,这时数据源就只有他所属的应用能够访问。如果需要所有的应用能够访问,可以配置在$TOMCAT\conf\context.xml中,直接配置下根元素下即可。这个文件在启动tomcat的时候,所有的应用都会加载。 
     如果需要节省资源,共享同一个数据源,可以配置在Server.xml的GlobalNamingResources节点下,在应用中可以通过别名访问,提供别名的方式是在应用所在的元素下添加如下的子元素,例: 

Xml代码 <ResouceLink name=”jdbc/test2” global=”jdbc/test” type=”javax.sql.DataSource”/>        <ResouceLink name=”jdbc/test2” global=”jdbc/test” type=”javax.sql.DataSource”/>     name就是别名,global是在GlobalNamingResources所定义的资源。
你只要把程序打包成jar的就可以了  启动tomcat  就可以访问了
正在学习中。。。

把项目达成war包 直接放到tomcat 下面OK

你是计算机专业的?怎么你问的我一个都不懂?还想帮帮你呢!结果我连你问的那些是什么意思都不懂-_-"惭愧吖…丢人吖…

上一个:关于JAVA析构函数不存在的原因
下一个:C#和Java的差别在哪儿?

Apache
IIS
Nginx
Tomcat
如果你遇到web 服务器难题:
访问www.zzzyk.com 试试
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,