(灰狐动力-中间件技术论坛 by huihoo.com Etre)
Jboss3.0-Tomcat4.03的虚拟主机的配置
1、 请你首先打开WINNTsystem32driversetc目录下的hosts文件,在里面加入你想要虚拟的机器名,如我是这样加的
127.0.0.1 www www.www.systekgz.com.cn
在这里www.systekgz.com.cn是我的域名。
www是虚拟名
而我机器的本身名字是fangm,在域中的就是fangm.www.systekgz.com.cn
2、 打开jboss-tomcat安装目录下的serverdefaultdeploy的目录中的tomcat4-service.XML文件,原来的文件是这样的
<?xml version="1.0" encoding="UTF-8"?>
<!-- Set catalina.home to the location of the Tomcat-4.x dist.
The default value is that of the JBoss/Catalina bundle where the
jakarta-tomcat-4.0.3-LE-jdk14 is included as jboss_dist/catalina
-->
<!DOCTYPE server [
<!ENTITY catalina.home "../catalina">
]>
<!-- The service configuration for the embedded Tomcat4 web container
-->
<server>
<classpath codebase="file:&catalina.home;/common/lib/" archives="*"/>
<classpath codebase="file:&catalina.home;/server/lib/" archives="*"/>
<classpath codebase="file:&catalina.home;/bin/" archives="*"/>
<classpath codebase="file:&catalina.home;/lib/" archives="*"/>
<classpath codebase="." archives="tomcat4-service.jar"/>
<mbean code="org.jboss.web.catalina.EmbeddedCatalinaServiceSX"
name="jboss.web:service=EmbeddedCatalinaSX">
<attribute name="CatalinaHome">&catalina.home;</attribute>
<attribute name="Config">
<Server>
<Service name = "JBoss-Tomcat">
<Engine name="MainEngine" defaultHost="localhost">
<Logger className = "org.jboss.web.catalina.Log4jLogger"
verbosityLevel = "trace" category = "org.jboss.web.localhost.Engine"/>
<Host name="localhost">
<Valve className = "org.apache.catalina.valves.AccessLogValve"
prefix = "localhost_access" suffix = ".log"
pattern = "common" Directory = "../server/default/log" />
<DefaultContext cookies = "true" crossContext = "true" override = "true" />
</Host>
</Engine>
<!-- A HTTP Connector on port 8080 -->
<Connector className = "org.apache.catalina.connector.http.HttpConnector"
port = "8080" minProcessors = "3" maXProcessors = "10" enableLookups = "true"
acceptCount = "10" debug = "0" connectionTimeout = "60000"/>
</Service>
</Server>
</attribute>
</mbean>
</server>
第一、 找到 <Engine name="MainEngine" defaultHost="localhost">处,Jboss-tomcat默认是发布在localhost下面,你改为你的机器名,在这里我改成了<Engine name="MainEngine" defaultHost="fangm.www.systekgz.com.cn">注意不是虚拟的名字。
第二、 加如下的一段<Host name="fangm.www.systekgz.com.cn">
<Alias>www.www.systekgz.com.cn</Alias>
<Logger className = "org.jboss.web.catalina.Log4jLogger" verbosityLevel = "debug" category = "org.jboss.web.Host=www"/>
<Valve className = "org.apache.catalina.valves.AccessLogValve" prefix = "www_access" suffix = ".log" pattern = "common" directory = " ../server/default/log" />
</Host>
注意这里<Logger className = "org.jboss.web.catalina.Log4jLogger" verbosityLevel = "debug" category = "org.jboss.web.Host=www"/> 和prefix = "www_access" www是虚拟的机器名
当然你也可以不修改 <Engine name="MainEngine" defaultHost="localhost">处把这里<Host name="fangm.www.systekgz.com.cn"> 改为<Host name="localhost">
改后完整的文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Set catalina.home to the location of the Tomcat-4.x dist.
The default value is that of the JBoss/Catalina bundle where the
jakarta-tomcat-4.0.3-LE-jdk14 is included as jboss_dist/catalina
-->
<!DOCTYPE server [
<!ENTITY catalina.home "../catalina">
]>
<!-- The service configuration for the embedded Tomcat4 web container
-->
<server>
<classpath codebase="file:&catalina.home;/common/lib/" archives="*"/>
<classpath codebase="file:&catalina.home;/server/lib/" archives="*"/>
<classpath codebase="file:&catalina.home;/bin/" archives="*"/>
<classpath codebase="file:&catalina.home;/lib/" archives="*"/>
<classpath codebase="." archives="tomcat4-service.jar"/>
<mbean code="org.jboss.web.catalina.EmbeddedCatalinaServiceSX"
name="jboss.web:service=EmbeddedCatalinaSX">
<attribute name="CatalinaHome">&catalina.home;</attribute>
<attribute name="Config">
<Server>
<Service name = "JBoss-Tomcat">
<Engine name="MainEngine" defaultHost="fangm.www.systekgz.com.cn">
<Logger className = "org.jboss.web.catalina.Log4jLogger"
verbosityLevel = "trace" category = "org.jboss.web.localhost.Engine"/>
<Host name="localhost">
<Valve className = "org.apache.catalina.valves.AccessLogValve"
prefix = "localhost_access" suffix = ".log"
pattern = "common" directory = "../server/default/log" />
<DefaultContext cookies = "true" crossContext = "true" override = "true" />
</Host>
<Host name="fangm.www.systekgz.com.cn">
<Alias>www.www.systekgz.com.cn</Alias>
<Logger className = "org.jboss.web.catalina.Log4jLogger" verbosityLevel = "debug" category = "org.jboss.web.Host=www"/>
<Valve className = "org.apache.catalina.valves.AccessLogValve" prefix = "www_access" suffix = ".log" pattern = "common" directory = " ../server/default/log" />
</Host>
</Engine>
<!-- A HTTP Connector on port 8080 -->
<Connector className = "org.apache.catalina.connector.http.HttpConnector"
port = "8080" minProcessors = "3" maxProcessors = "10" enableLookups = "true"
acceptCount = "10" debug = "0" connectionTimeout = "60000"/>
</Service>
</Server>
</attribute>
</mbean>
</server>
第三、 在你发布.ear应用时,在你找包.war的web应用是,请你在jboss-web.xml文件中加入如下的
<jboss-web>
<context-root>/</context-root>
<virtual-host>www.www.systekgz.com.cn</virtual-host>
</jboss-web>
你就可以通过http:// www.www.systekgz.com.cn:8080来访问了。如果你出现
Apache Tomcat/4.0.3 - HTTP Status 500 - No Context configured to process this request那是因为你没有发布应用.
(出处:http://www.knowsky.com)