问题现象如下图

linux 环境下tomcat中部署jfinal项目

问题描述:

我在自己的windows7系统上tomcat下面跑这个项目没有任何问题吗,但是当我把项目上传到linux服务器上的tomcatwebapps目录下后,启动tomcat,服务器死活找不到工程目录。

然后我就郁闷了.............

分析运行环境:

本机:

系统  win7 64

tomcat 8.0.33

jdk版本 1.8.0_51

linux服务器:

系统   Linux version 2.6.32-431.el6.x86_64 

tomcat   7.0.72.0

java version "1.7.0_79"

 

问题分析:

首先由于之前jfinal-2.2 开发的项目在tomcat下是可以运行的,项目简称jf2。

这次开发用的是jfinal-3.0-bin-with-src,然后在tomcat下不能运行,项目简称jf3。

于是采用单变量分析法。

变量一   tomcat版本不同,其他相同

在linux服务器上安装tomcat 8  ,然后运行jf3不能运行

变量二   jfinal版本不同,其他相同

jf2和jf3项目均不能运行

变量三   jdk版本不同,其他相同

编译和运行环境统一,本机也采用jdk 7 的版本编译,结果jf2和jf3均能在服务器上进行运行。

 

结论:

  jdk版本不一致,导致编译后classes目录下文件无法被linux服务器上的容器解析

 

修正:

  经过后来的试验发现并不是jdk版本引起的,而是idea下面打成war包的时候莫名的会把公网的数据库连接语句注释掉,使用内网连接数据库语句,所以后来我修改war里面的配置文件就好了,其实是可以用jdk1.8进行编译的。