java项目打war包部署到linux服务器的tomcat

java项目打war包部署到linux服务器的tomcat

啥也别说了,直接看操作。

一 环境准备
  1. war包部署到tomcat,所以需要安装tomcat;
  2. tomcat以来jdk,所以需要安装jdk,先安装jdk再安装tomcat
二 开始部署
  1. 进入到tomcat的webapps目录下,将war包放到这里,可通过xftp上传。同时webapps目录下自带了几个目 --> docs,examples,host-manager,manager,ROOT ,好多人说要留三个(host-manager,manager,ROOT)。其实没必要,可以全部删掉,这样tomcat运行还可以更快。要说影响,无非就是启动的时候找不到欢迎页面,but,要这个干嘛?!需要说明的是,ROOT目录删了,在项目启动的时候会自动生成,里面就是你的代码文件和jar包依赖。我的是这样的,会自动生成。
  2. 删掉webapps下自带目录文件之后,war包也上传到这里了(删除自带文件和上传war包顺序无所谓的),tomcat启动的时候会自动解压。
  3. 修改conf目录下的server.xml文件,找到Host标签,如下:
 <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->

        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t "%r" %s %b" />

		<!--注意:这是我新增的 -->
        <Context path="/" docBase="test.war" debug="0" privileged="true" reloadable="true"/>

      </Host>

找到该标签之后,新增如下一行,上面代码块也有:

<Context path="/" docBase="test.war" debug="0" privileged="true" reloadable="true"/>

docBase是关键,这是war包的名称,就是项目打成war包的名字,也就是放到webapps目录下的war包名。增加内容之后,保存。

  1. 进入到bin目录下,启动tomcat -> ./startup.sh
三 请求访问

OK,到此项目启动完毕,接下来就可以进行请求访问啦:

http://123.123.123.123:8080/test/${这里是项目接口}

说明:123.123.123.123:8080是服务器的ip:port,具体根据你自己的项目来,我这里只是示范来的。再后面的/test就是你上传的war包名,注意不要加.war后缀名。最后就是项目里的请求路径了,@RequestMapping("xxx")类上注解以及@GetMapping("yyy")方法上注解这些。完整请求如下:

http:123.123.123.123:8080/test/xxx/yyy
四 其他问题

webapps目录下的host-mangermanger目录删除后,不同的tomcat版本可能会有问题,再删掉 conf目录下的Catalina目录下的localhost目录下的 host-manager.xmlmanager.xml 即可。

我的tomcat9.0.31版本的,删除webapps目录下自带的所有文件之后,项目启动不存在任何问题。

最后再提一嘴,我用到了zookeeper,是3.5.7版本的,这个版本的zk启动会默认占用8080端口,这就导致和tomcat的默认端口冲突了,总有一个要出问题。解决办法也简单:
1、可以修改zk的配置文件zoo.cfg,新增如下配置:admin.serverPort=8090,指定zk服务启动占用的端口为8090,当然具体是多少都行,我是设置的8090,只要不和tomcat的8080冲突就行。然后重启zk -> ./zkServer.sh restart
2、当然,你也可以修改tomcat的端口不使用8080,一样可以解决冲突问题。

你可能感兴趣的:(随笔)