我很沮丧。
本地
全新安装Tomcat 7.0.50 使用maven构建WAR,将WAR放入Tomcat,启动Tomcat,查看我应该的所有日志,部署正常,可以在本地命中。 server.xml中没有定义Context。 WAR中没有上下文,配置了xml-free Spring 3.1.0。
远程EC2服务器
Fresh t1.micro instance - > 'sudo yum update' - > 'sudo yum install tomcat7'。 安装Tomcat 7.0.47。 比较server.xml,tomcat的web.xml,所有文件都与我的本地文件完全相同。 放下WAR。启动tomcat。 没有。 localhost日志文件显示 '在类路径上没有检测到WebApplicationInitializer'。
这些设置本质上有什么不同,这会破坏我的EC2盒子在WAR中找到类?它将WAR分解为一个文件夹,然后将球丢弃。
我已经在这个工作了几个小时(字面意思是超过6个)并且没有运气。
尝试以下
将各种Context标签组合添加到server.xml。
将战争部署为“ROOT.war”
点击我能想象到的每个网址组合。 (我点击tomcat服务器,除了“tomcat:8080”之外,到处都是tomcat 404我只是得到一个白屏404.
我找不到很多关于tomcat类路径的详尽解释。
免责声明:我找到了一些,但他们只是无益。我的WebApplicationInitializer类在WAR的WEB-INF /类中,显然Spring / Tomcat没有找到它。
我被击败了。
任何想要解决这个问题的人都会感激不尽。
答案 0 :(得分:1)
我花了几个多小时试图弄清楚为什么会这样。正如所料,解决方案如此简单,让我想哭:-) 在我的案例中我要解决的问题就是在运行我的tomcat(Apache Tomcat / 7.0.26)的ubuntu机器上将我的Java升级到7.0,一旦我这样做,一切都按预期工作。
要将ubuntu java更改为版本7,请执行以下操作:
sudo apt-get purge openjdk*
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-set-default
这将执行以下任务:
删除所有以前的openjdk安装
安装add-apt-repository命令
添加具有oracle java包的外部存储库
安装Java 7
如果执行此操作后突然出现错误“*未找到JDK - 请在尝试启动Tomcat7服务时设置JAVA_HOME”,只需更新/ etc / default / tomcat7下的JAVA_HOME位置
答案 1 :(得分:0)
幸运的是,我没有花太多时间在这上面,我几乎没有哭过。
我的问题出在Tomcat 8上,但我没有意识到安装的JDK是openjdk-1.7.0,当我需要Java 8.安装openjdk-1.8.0解决了我的问题。
让我失望的是日志显示发现JerseyAutoConfiguration
(在Spring Boot中) ,但我的初始化程序没有。