zoukankan      html  css  js  c++  java
  • Tomcat相关记录

    1.从页面接收到的中文参数变成了乱码:

    <Connector URIEncoding="UTF-8" port="43002" protocol="HTTP/1.1"
    connectionTimeout="20000"
    redirectPort="8443" />

    可能是这里没有指定URIEncoding的缘故

    2.关于在idea中配置tomcat,一定要记得在这里指定application context,我因为没设置这里结果一直报404.

    3.第二条,修改后发现访问路径可以自己随意设置,但是部署到服务器后访问的项目名又变回来了。此时可以直接修改项目文件夹的名字。

      比如说你的项目部署位置在%CATALINA_HOME%/webapp下,web-backstage/ 是你的项目文件夹,那你访问的项目名就是web-backstage,将它修改为你想要的就可以.

    4.关于日志,CATALINA_OUT,它一般指向的是%CATALINA_BASE%/log/catalina.out

      catalina.out会记录:

      1.标准输出流,System.out,System.err

      2.log4j2框架里的Console的logger

      3.exception的printStackTrace()方法

      4.tomcat的一些运行记录(启动、关闭、错误)

    catalina.out的内容会一直增加,最后导致硬盘容量被全部占据。因此需要使用cronolog来分割日志.

      首先下载cronolog,由于墙的存在,可能下不下来。从其他地方找吧。然后执行以下命令

       tar xf cronolog-1.6.2.tar.gz 

       cd cronolog-1.6.2 

       ./configure 

       make && make install 

       which cronolog     #查看被安装到哪里

      接着修改tomcat目录bin下的catalina.sh文件

      #vi bin/catalina.sh

      找到下面这行:

        org.apache.catalina.startup.Bootstrap "$@" start
          >> "$CATALINA_OUT" 2>&1 &

      

      类似这样的行有2处,第一处是tomcat时带“-security”参数的启动,第二处是默认tomcat启动方式,也就是else下面的那部分,我们只修改这里。

      另外还要把touch “$CATALINA_OUT"这行注释掉。

      完整的修改如下:

      #  touch "$CATALINA_OUT"
        if [ "$1" = "-security" ] ; then
          if [ $have_tty -eq 1 ]; then
            echo "Using Security Manager"
          fi
          shift
          "$_RUNJAVA" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS
            -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH"
            -Djava.security.manager
            -Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy
            -Dcatalina.base="$CATALINA_BASE"
            -Dcatalina.home="$CATALINA_HOME"
            -Djava.io.tmpdir="$CATALINA_TMPDIR"
            org.apache.catalina.startup.Bootstrap "$@" start
            >> "$CATALINA_OUT" 2>&1 &

        else
          "$_RUNJAVA" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS
            -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH"
            -Dcatalina.base="$CATALINA_BASE"
            -Dcatalina.home="$CATALINA_HOME"
            -Djava.io.tmpdir="$CATALINA_TMPDIR"

        org.apache.catalina.startup.Bootstrap "$@" start "2>&1" | /usr/local/sbin/cronolog -S "$CATALINA_BASE"/logs/catalina_ln.out "$CATALINA_BASE"/logs/catalina.%Y-%m-%d-%H.out >> /dev/null &

       fi

    保存退出

    重启Tomcat服务

    解决方法:1.使用Log4j或Log4j2来替换默认的日志实现。2.使用

    5.与tomcat相关的环境变量有:CATALINA_HOME、CATALINA_BASE,对应的属性在shell中有catalina.home、catalina.base

      tomcat的目录结构包括:

      bin(运行脚本目录)

      conf(配置目录)

      lib(核心库目录)

      logs(日志目录)

      temp(临时目录)

      webapps(自动装载的应用程序目录)

      work(JVM临时文件目录[java.io.tmpdir])

     而如果要部署多个tomcat实例,其实能公用的只有bin和lib目录,其他目录conf、logs、temp、webapps、work每个tomcat实例必须拥有自己独立的备份。

     因此catalina.home指向公用信息的位置,就是bin和lib的父目录。

     catalina.base指向每个tomcat目录私有信息的位置,就是conf、logs、temp、webapps、work的父目录。

     仅运行一个tomcat实例时,这两个属性指向的位置是相同的。

      ps.一个主机上部署多个tomcat实例,待研究。

    6.linux下安装tomcat,截图子tomcat官网评论区

  • 相关阅读:
    jar包启动的日志管理问题
    docker常用命令-----镜像与容器
    Maven+Nexus私服的搭建
    公允价值变动损益期末处理
    递延所得税资产怎么算
    固定资产转投资性房地产的差额为什么计入其他综合收益
    固定资产转投资性房地产
    固定资产折旧方法
    SublimeText注册码(亲测可用)
    未分配利润和净利润的区别是什么?
  • 原文地址:https://www.cnblogs.com/zaixiuxing/p/5640681.html
Copyright © 2011-2022 走看看