Spring: Export -> WAR file -> 404 Not Found 问题

每次部署 WAR 项目都是比较繁琐的一件事, 想必最不想出现的情况就是这样:

如何才能使得项目部署起来安全, 又轻松?

1. 将 Spring 等框架的 Jar 文件放到 ${ tomcat }/lib 下的单独文件夹中

develon@local:~/tomcat8$ ls lib/spring
commons-fileupload-1.3.2.jar      spring-context-support-4.3.9.RELEASE.jar    spring-orm-4.3.9.RELEASE.jar
commons-io-2.5.jar                spring-core-4.3.9.RELEASE.jar               spring-oxm-4.3.9.RELEASE.jar
commons-logging-1.2.jar           spring-expression-4.3.9.RELEASE.jar         spring-test-4.3.9.RELEASE.jar
mysql-connector-java-8.0.16.jar   spring-instrument-4.3.9.RELEASE.jar         spring-tx-4.3.9.RELEASE.jar
spring-aop-4.3.9.RELEASE.jar      spring-instrument-tomcat-4.3.9.RELEASE.jar  spring-web-4.3.9.RELEASE.jar
spring-aspects-4.3.9.RELEASE.jar  spring-jdbc-4.3.9.RELEASE.jar               spring-webmvc-4.3.9.RELEASE.jar
spring-beans-4.3.9.RELEASE.jar    spring-jms-4.3.9.RELEASE.jar                spring-webmvc-portlet-4.3.9.RELEASE.jar
spring-context-4.3.9.RELEASE.jar  spring-messaging-4.3.9.RELEASE.jar          spring-websocket-4.3.9.RELEASE.jar

此时, 你需要编辑 ${ tomcat }/conf/catalina.properties, 将 "${catalina.base}/lib/spring/*.jar" 插入变量 common.loader 中
注意, 这里是不能是 "${catalina.base}/lib/*/*.jar" 这样的通配目录, 意味着没有一劳永逸的设置方法

common.loader="${catalina.base}/lib","${catalina.base}/lib/*.jar","${catalina.base}/lib/spring/*.jar","${catalina.home}/lib","${catalina.home}/lib/*.jar"

2. 检查版本: 包括框架的版本, JDK 的版本, 导出的 WAR 类文件的版本, 避免兼容性问题

很多时候我们的服务器是正常的, JDK 版本虽然低, 但也可能受 Spring 的支持, 只不过我们开发机上的 JDK 版本过高, 而 WAR 输出的类文件版本默认又是最高版本, 这就导致放到服务器上的类文件根本不能被执行, 所以务必保证输出类文件的版本:

posted @ 2019-09-08 20:40  develon  阅读(162)  评论(0编辑  收藏  举报