同时用两个不同版本的Tomcat跑两个项目方法,及不用Eclipse把项目部署到Tomcat的方法

因项目需要,要同时部署两个项目,但是对Tomcat的支持度不同,一个需要用Tomcat6, 一个需要用Tomcat7

将两个项目分开跑会出现

java.lang.Exception: Socket bind failed: [730048] ?????????×???(Э?é/???????/???)????í?? 

端口号被占用的错误


于是可以修改其中一个Tomcat的端口号,修改方式如下:



打开tomcat目录下conf目录下的server.xml文件
修改红色的端口值
<Server port="8005" shutdown="SHUTDOWN"> 
<Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" /> 
<Connector port="8081" protocol="AJP/1.3" redirectPort="8443" /> 

如可以改成

<Server port="8885" shutdown="SHUTDOWN"> 
<Connector port="8886" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" /> 
<Connector port="8887" protocol="AJP/1.3" redirectPort="8443" /> 

访问tomcat的时候用localhost:8886访问即可





将项目部署到Tomcat上的方法:

一、静态部署

1、直接将web项目文件件拷贝到webapps 目录中
     TomcatWebapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应用。所以可以将JSP程序打包成一个 war包放在目录下,服务器会自动解开这个war包,并在这个目录下生成一个同名的文件夹。一个war包就是有特性格式的jar包,它是将一个web程序的所有内容进行压缩得到。具体如何打包,可以使用许多开发工具的IDE环境,如Eclipse等。也可以用 cmd 命令:jar -cvf mywar.war  myweb 
     webapps
这个默认的应用目录也是可以改变。打开Tomcatconf目录下的server.xml文件,找到下面内容:

<Host name="localhost" appBase="webapps"

       unpackWARs="true" autoDeploy="true"

       xmlValidation="false" xmlNamespaceAware="false">

appBase修改即可。 
2、在server.xml中指定 
    Tomcat的配置文件中,一个Web应用就是一个特定的Context,可以通过在server.xml中新建Context里部署一个JSP应用程序。打开server.xml文件,在Host标签内建一个Context,内容如下。

tomcat中的conf目录中,在server.xml中的,<host/>节点中添加: 
<Context path="/hello" docBase="D:\ workspace\hello\WebRoot" debug="0" privileged
="true"> 
</Context>

或者

<Context path="/myapp" reloadable="true" docBase="D:\myapp" workDir="D:\myapp\work"/>

或者

<Context path="/sms4" docBase="D:\workspace\sms4\WebRoot"/>


说明:

path是虚拟路径;

docBase 是应用程序的物理路径;

workDir 是这个应用的工作目录,存放运行时生成的与这个应用相关的文件;

 

debug 则是设定debug level,  0表示提供最少的信息,9表示提供最多的信息

privileged设置为true的时候,才允许TomcatWeb应用使用容器内的Servlet

reloadable 如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib /WEB-INF/classes目录的变化,自动装载新的应用程序,可以在不重起tomcat的情况下改变应用程序,实现热部署

antiResourceLockingantiJARLocking  热部署是需要配置的参数,默认false避免更新了某个webapp,有时候Tomcat并不能把旧的webapp完全删除,通常会留下WEB-INF/lib下的某个jar包,必须关闭Tomcat才能删除,这就导致自动部署失败。设置为trueTomcat在运行对应的webapp时,会把相应的源文件和jar文件复制到一个临时目录里。
3、创建一个Context文件 
  conf目录中,新建 Catalinalocalhost目录,在该目录中新建一个xml文件,名字不可以随意取,要和path后的那个名字一致,按照下边这个path的配置,xml的名字应该就应该是hellohello.xml),该xml文件的内容为:

<Context path="/hello" docBase="E:\workspace\hello\WebRoot" debug="0" privileged="true"></Context>

 

tomcat自带例子如下:

<Context docBase="${catalina.home}/server/webapps/host-manager"

         privileged="true" antiResourceLocking="false" antiJARLocking="false">

</Context>

这个例子是tomcat自带的,编辑的内容实际上和第二种方式是一样的,其中这xml文件名字就是访问路径,这样可以隐藏应用的真实名字。

4、注意:

    删除一个Web应用同时也要删除webapps下相应的文件夹和server.xml中相应的Context,还要将Tomcatconf\catalina\localhost目录下相应的xml文件删除,否则Tomcat仍会去配置并加载。。。

二 动态部署

     登陆tomcat管理控制台:http://localhost:8080/,输入用户名和密码后便可管理应用并动态发布。

     Context Path(option):中输入/yourwebname ,这代表你的应用的访问地址。

     XML Configration file URL中要指定一个xml文件,比如我们在F:\下建立一个hmcx.xml文件,内容如下:<Context reloadable="false" />其中docBase不用写了,因为在下一个文本框中填入。或者更简单点,这个文本框什么都不填,在WAR or Directory URL:中键入F:\hmcx即可,然后点击Deploy按钮,上面就可以看到了web应用程序,名字就Context Path(option):中的名字。


    如果部署.war文件还有更加简单的方式,下面还有个Select WAR file uploae点击浏览选择.war文件,然后点击Deploy也可以。









 


  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值