如何一个tomcat下运行多个web应用???

freherhjj 2010-11-15 06:02:20

<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<Listener className="org.apache.catalina.core.JasperListener" />
<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />

<GlobalNamingResources>
<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="9697" 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="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<!--
<Context path="" docBase="ROOT" debug="0">
-->
</Host>
</Engine>
</Service>
</Server>

上面是我的tomcat内conf目录下的server.xml文件配置,在webapps目录下有个ROOT目录,当前放置的一个应用程序。
通过http://localhost:9697/可访问到ROOT下的这个web应用。
我现在有个需求——配置第二个应用
我的想法是在webapps下建立第二个应用app2,使其与ROOT下的应用完全隔离,并可通过http://localhost:9909/直接访问
即端口号不同。请问应该如何增加第二个应用的xml配置
如果这个思路不可能,那有没有比较接近的方法???
...全文
1071 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
大哥,我们一般用用多个域名访问同一个服务器下面的多个应用,而不是同一个域名的多个端口。
若要用多个端口,那你最好装多个tomcat

同一个tomcat下多个应用可以分别用不同的域名访问。也就是设多个Host

<Host name="localhost" ...

<Host name="www.xxx.com"...
  • 打赏
  • 举报
回复
不写 配置文件 可以吗? JSP 中 直接 用 就是了
xunzhaofenghua 2010-11-23
  • 打赏
  • 举报
回复
这样可以吗?
simoncuff 2010-11-22
  • 打赏
  • 举报
回复
deploy一下就可以了么
Mr丁 2010-11-22
  • 打赏
  • 举报
回复
顶了,学习
freherhjj 2010-11-18
  • 打赏
  • 举报
回复
不一定是多个端口,我的需求是:启动tomcat时只启动一个应用。而访问时除了http://localhost:端口/外,不需要加额外的路径目录。
venusdrogon的通过加载<Context >的方式应该是把所有的应用都启动起来了吧,并且访问时要加应用的路径吧,比如http://localhost:端口/app2/
miya 2010-11-18
  • 打赏
  • 举报
回复
在我的印象中,tomcat是不能同时监听多个端口的吧,同一个端口可以同时发布多个web程序,楼主为什么会需要多个端口呢,如果有哪位高手知道tomcat可以同时监听多个端口号的话,希望分享出来,学习学习,帮顶了
飞天奔月 2010-11-18
  • 打赏
  • 举报
回复
这是我的配置代码

可以配置n个 把注释符号去就就可以

完整的server.xml
飞天奔月 2010-11-18
  • 打赏
  • 举报
回复

<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<Listener className="org.apache.catalina.core.JasperListener" />
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<GlobalNamingResources>
<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="5222" 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="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<!--<Context path="/zhaopin" docBase="E:\workspaces\project\zhaopin\WebRoot" reloadable="true"></Context>-->
<!--<Context path="/feilong-test" docBase="E:\workspaces\project\feilong-test\WebRoot" reloadable="true"></Context>-->
<!--<Context path="/baby" docBase="E:\workspaces\project\baby\WebRoot" reloadable="true"></Context> -->
<!--<Context path="/feilong-netpay" docBase="E:\workspaces\project\feilong-netpay\WebRoot" reloadable="true"></Context> -->
<!--<Context path="/feilong-spring-test" docBase="E:\workspaces\project\feilong-spring-test\WebRoot" reloadable="true"></Context> -->
</Host>
</Engine>
</Service>
</Server>


freherhjj 2010-11-18
  • 打赏
  • 举报
回复
???
yu_jinming 2010-11-18
  • 打赏
  • 举报
回复
这问题问的经典的,呵呵。
include0000 2010-11-16
  • 打赏
  • 举报
回复
学习帮顶。。。。。。
-船长- 2010-11-16
  • 打赏
  • 举报
回复
bingmeng_1102 2010-11-16
  • 打赏
  • 举报
回复
学习学习。。。
t150ckh 2010-11-16
  • 打赏
  • 举报
回复
不过想了一下,tomcat只监听一个端口的,所以觉得应该从域名上来解决这个问题.....
t150ckh 2010-11-16
  • 打赏
  • 举报
回复
看错楼主的意思了....
t150ckh 2010-11-16
  • 打赏
  • 举报
回复
<Host name="myhost2" appBase="app2"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>


这是server.xml中要写的,你有多少个就写多少个,注意记住这个name 然后在conf目录下的Catalina目录下建立name(两个名字要相同)文件夹,在这个name文件夹下把项目的webroot下的文件拷备出来放入到这里tomcat这里面就完成了....但有一问题就是访问了.访问时候是要写上http://name:端口号 这种形式才行的.

还要改的就是ip映射... 这个你在C盘下搜索hosts这文件 在里面写上你的ip 例如 127.0.0.1 name 再保存下就ok了....
xuyisen_1987 2010-11-16
  • 打赏
  • 举报
回复
把所有的项目都拷贝到webapp目录下,然后启动tomcat就行了
宁波朱超 2010-11-16
  • 打赏
  • 举报
回复
[Quote=引用楼主 freherhjj 的回复:]
XML code

<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<Listener className="org.apache.catalina.core.JasperLis……
[/Quote]

看你的代码 你该用的是TOMCAT 我用APACHE 做了个集群 你可以看下
http://user.qzone.qq.com/19810109/blog/1289833575
jeky_zhang2013 2010-11-15
  • 打赏
  • 举报
回复
可以考虑用apache来进行管理,建立多个虚拟主机,设定各自的端口,网上有很多资料
加载更多回复(3)

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧