【实践】在linux中部署war包
1.用maven打war包
一、上传Tomcat服务器
二、安装Tomcat服务器
2.1、解压tomcat服务器压缩包
2.2、配置环境变量
tomcat服务器运行时是需要JDK支持的,所以必须配置好JDK用到的那些环境变量
编辑/etc下的profile文件,加上如下内容:
2.3、修改tomcat服务器的启动端口
修改将Tomcat服务器启动时使用的端口,例如改成9999
修改完server.xml文件之后,保存,退出。
三、Tomcat服务器启动和关闭
3.1、启动Tomcat服务器
进入tomcat服务器的bin目录,然后执行"./startup.sh"命令启动Tomcat服务器,如下图所示:
查看tomcat服务器的Log信息,看看tomcat服务器是否已经正常启动,进入tomcat服务器下的logs目录,打开catalina.out文件进行查看,如下图所示:
访问Tomcat服务器,如下图所示:
可以正常访问了,说明Tomcat服务器已经正常启动成功了。
如果tomcat启动不了,那么最有可能就是启动时使用的端口被其他应用程序占用了,那么可以通过如下的办法进行排查,例如查看9999端口被哪个应用程序占用了。
3.2、关闭Tomcat服务器
进入tomcat服务器的bin目录,然后执行"./shutdown.sh"命令启动Tomcat服务器,如下图所示:
查看tomcat服务器的Log信息,看看tomcat服务器是否已经正常关闭,进入tomcat服务器下的logs目录,打开catalina.out文件进行查看,如下图所示:
四、部署JavaWeb应用到Tomcat服务器
部署JavaWeb应用到Tomcat服务器就是将开放好的JavaWeb应用打包成war包,然后发布到tomcat服务器的webapps目录下
4.1、打包JavaWeb应用
项目打包成功,如下图所示:
4.2、将war包发布到tomcat服务器的webapps目录下
将JavaWeb应用打包成war包之后,要将这个war包放到tomcat服务器的webapps目录下,由于要部署的javaWeb应用使用的是JNDI数据源,所以首先要把数据库对应的驱动jar包放到tomcat服务器的lib目录下。
1、将Oracle数据库的驱动jar包上传到tomcat服务器的lib目录
如下图所示:
2、将打包好的war包上传到tomcat服务器的webapps目录
如下图所示:
上传war包到webapps目录
上传成功
Tomcat服务器自动解压缩war包
检查一下tomcat服务器是否自动在conf目录下创建了Catalina/localhost目录,在看看localhost目录下是否有tomcat服务器自动创建的oams.xml文件
五、Linux下安装Tomcat服务器使用到的命令
5.1、linux查看端口被哪个进程占用
lsof -i:端口号
例如:
5.2、查看Linux服务器的版本
lsb_release -a
例如:
5.3、查看当前iptables(防火墙)规则
可使用"iptables –L –n"查看当前iptables规则
例如:
5.4、添加指定端口到防火墙中
iptables -I INPUT -p 协议 --dport 端口号 -j ACCEPT
例如:
1 iptables -I INPUT -p udp --dport 161 -j ACCEPT
2 iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
【问题】Linux环境下C3P0 Failed to get local InetAddress for VMID 解决办法
https://blog.csdn.net/FX_SKY/article/details/38703769
今天在做一个Java项目中用到了C3P0数据源,程序在Windows下运行没有任何问题,但是往服务器(Linux环境)上部署 运行的时候出现异常了,异常信息如下:
2014-08-19 20:51:01 [INFO] Failed to get local InetAddress for VMID. This is unlikely to matter. At all. We\'ll add some extra randomness
java.net.UnknownHostException: w: w
at java.net.InetAddress.getLocalHost(Unknown Source)
at com.mchange.v2.c3p0.impl.C3P0ImplUtils.generateVmId(C3P0ImplUtils.java:120)
at com.mchange.v2.c3p0.impl.C3P0ImplUtils.<clinit>(C3P0ImplUtils.java:98)
at com.mchange.v2.c3p0.impl.PoolBackedDataSourceBase.<init>(PoolBackedDataSourceBase.java:227)
at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.<init>(AbstractPoolBackedDataSource.java:62)
at com.mchange.v2.c3p0.ComboPooledDataSource.<init>(ComboPooledDataSource.java:109)
at com.mchange.v2.c3p0.ComboPooledDataSource.<init>(ComboPooledDataSource.java:105)
.......
Caused by: java.net.UnknownHostException: w
at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$1.lookupAllHostAddr(Unknown Source)
at java.net.InetAddress.getAddressesFromNameService(Unknown Source)
... 23 more
乍一看感觉莫名其妙,从来都没碰到过这样的异常,最后在Google上找到了解决办法,先说明一下导致这个异常的原因,然后给出解决办法。
问题原因
先看看UnknownHostException: w 中w是怎么得来的吧,cat /etc/sysconfig/network 文件,内容如下:
[root@w picture]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=w
HOSTNAME=w,噢噢,看到这里顿时感觉 柳暗花明了,原来是因为系统没有找到主机名w对应的IP,只需修改Linux的hosts文件即可。
解决办法
上面已经分析错误原因了,主要是因为系统没有找到主机名w对应的IP,修改Linux的hosts文件即可。具体操作步骤如下:
首先,执行 cat /etc/hosts 命令,如下:
[root@w picture]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
然后再执行 vi /etc/hosts 命令
在第一行 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 后加上 w 保存即可。
修改完之后的hosts文件如下:
[root@w picture]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 w
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
Linux查找域名时通常指先查找文件/etc/hosts,找不到时再向DNS服务器请求。
【问题】An incompatible version 1.1.14 of APR based Apache Tomcat Native library is installed, while Tomcat requires version 1.1.24.
【问题】java.net.ConnectException: Connection refused
数据库链接需要当前客户端连接的 主机名
修改c3p0连接的主机名
jdbc.url=jdbc:mysql://jchem-test:3306/enotes?characterEncoding=utf8&useSSL=true
如果报连接数问题可以加上连接数配置
<property name="minPoolSize"> <value>10</value> </property> <property name="maxPoolSize"> <value>35</value> </property>