tomcat只需要解压就可以使用,不需要安装,这个比较简单。
首先我们新建tomcat使用的用户与用户组如下
1groupadd tomcatd
2useradd -g tomcatd tomcatd
3passwd tomcatd
我们将apache-tomcat-8.5.64.tar.gz 上传到 用户根目录下。注意一点,一般tomcat的版本与本地jdk版本号相同是最搭配的情况,我们本地jdk一般是jdk8,建议使用tomcat8或tomcat8.5,越高的tomcat版本一般需要jdk版本越高,不搭配的使用可能会出现环境问题。
通过 tar -zxvf apache-tomcat-8.5.64.tar.gz 解压出来即可。
首先,第一次需要配置访问端口,例如我这里使用8081,修改 [tomcat目录]/conf/server.xml 文件
vi 该文件,找到 protocol="HTTP/1.1" 的 connector,修改port=8081即可。
先不要退出该文件,下面我们顺便将特殊字符配置处理一下,Tomcat 有一个RFC特殊字符校验,如果不配置的话,请求中的很多特殊字符无法使用(tomcat7以下不需要配置)。
我们依然调整这条Connector信息,添加下面配置
xxxxxxxxxx
11relaxedPathChars="|{}[],^~" relaxedQueryChars="|{}[],^~"
这个配置完,我们保存文件,依然是该目录下,vi catalina.properties 文件,到文件最后,添加下面的配置进去
xxxxxxxxxx
21tomcat.util.http.parser.HttpParser.requestTargetAllow=|{}
2org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true
配置完成后保存退出即可。
下面是部署项目过程,把项目上传到 [tomcat目录]/webapp下即可,项目目录或war包都可以,目录上传后修改名称为工程名。
下面是启动过程,到 [tomat目录]/bin目录下,执行 ./startup.sh 即可
启动后,查看控制台日志,查看 [tomcat目录]/logs/catalina.out 内容即可
xxxxxxxxxx
11tail -f catalina.out
使用 http://192.168.1.137:8081/lily 已经可以正常访问
停止tomcat的方式比较简单,与weblogic类似,定位到进程后强关进程即可。
查询进程号的方式也是一样的方式,一种方式是通过进程内容筛选,使用下面的命令
xxxxxxxxxx
11ps -ef|grep tomcat
内容最长的就是我们需要的信息,进程号是16871。
另一种方式是通过监听端口筛选,使用下面的方式
xxxxxxxxxx
11netstat -antp|greo 8081
通过 kill -9 [进程号] 强杀即可。
tomcat 缓存文件在 [tomcat]/work/Catalina 文件中,
直接 rm -rf Catalina 即可(注意清理前一定先关闭tomcat)。
tomcat配置数据源的处理比weblogic要稍微麻烦一些,下面来说明具体方法。
首先,tomcat中不带jdbc的jar包,需要我们先将数据源的jdbc包上传到 [tomcat目录]/lib 下面。
上送上去后,我们到 [tomcat目录]/conf/context.xml 中配置数据源信息,将下面的信息添加到根节点下
xxxxxxxxxx
101<Resource name="jdbc/test"
2auth="Container"
3type="javax.sql.DataSource"
4maxActive="100"
5maxIdle="30"
6maxWait="1000"
7username="db2admin"
8password="leo11zero"
9driverClassName="com.ibm.db2.jcc.DB2Driver"
10url="jdbc:db2://192.168.1.40:50000/sample" />
name建议配置全小写,maxActive(最大活动连接)与maxIdle(最大等待连接)请根据实际情况配置。
这样tomcat这边准备就完成了。
需要使用该数据源的项目,需要在项目中配置2个位置。
一个是在web.xml中引入数据源支持,将下面的信息配置到web.xml根节点下
xxxxxxxxxx
51<resource-ref>
2<res-ref-name>jdbc/test</res-ref-name>
3<res-type>javax.sql.DataSource</res-type>
4<res-auth>Container</res-auth>
5</resource-ref>
然后在config/esb/driver/db/appDBConnect.xml中调整POOL配置,配置为 java:comp/env/jdbc/test,这个位置注意,配置tomcat连接池,java:comp/env/ 这个前缀必须加上。这样就可以了。
后台报错7230,前端响应400时,可以使用下面方式修复。
x1## conf/catalina.properties中,找到最后注释掉的一行 #tomcat.util.http.parser.HttpParser.requestTargetAllow=|,改成tomcat.util.http.parser.HttpParser.requestTargetAllow=|{},表示把{}放行
2
3## conf/catalina.properties中最后添加一行:
4org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true
5
6## 在conf/server.xml中的<Connector>节点中,添加2个属性:
7relaxedPathChars="|{}[],^~"
8relaxedQueryChars="|{}[],^~"
Windows下,在文件/bin/catalina.bat,Linux下,在文件/bin/catalina.sh的前面,增加如下设置:
JAVA_OPTS=-Xms【初始化内存大小】 -Xmx【可以使用的最大内存】
JAVA_OPTS 这个是,TOMCAT已经定义好的,名,你只需要将 JAVA_OPTS=-Xms256m -Xmx512m
这句话,添加到
catalina.bat(windows)
set JAVA_OPTS=-Xms256m -Xmx512m
catalina.sh(linux)
JAVA_OPTS=-Xms256m -Xmx512m
或者直接修改start.bat或start.sh文件也行,因为start文件会调用catalina文件,如:
如果是windows环境,在startup.bat中加入set JAVA_OPTS=-Xms256m -Xmx1024m
如果是linux则在startup.sh中加入JAVA_OPTS=-Xms256m -Xmx1024m
有时候前端配置跨域后,在tomcat中cookie路径不为/,导致无法携带cookie,处理方案如下。
修改tomcat/conf/server.xml
x1<Connector port="NN" maxHttpHeaderSize="8192"
2maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
3enableLookups="false" redirectPort="NN" acceptCount="100"
4connectionTimeout="20000" disableUploadTimeout="true"
5emptySessionPath="true" sessionCookiePath="/" />
一般只需要设置 sessionCookiePath="/" 即可。
取消httpOnly的方式如下
修改tomcat/conf/context.xml
xxxxxxxxxx
11<Context useHttpOnly="false">