记一次IDEA 打包环境JDK版本和生产环境JDK版本不一致引发的血案

问题描述:

本地开发环境idea中能正常运行项目,而idea打war包到Linux服务器的Tomcat下却不能正常运行,报如下错误:

09-Aug-2019 08:56:06.878 SEVERE [localhost-startStop-1] org.apache.catalina.core.StandardContext.startInternal One or more listeners failed to start. Full details will be found in the appropriate container log file
09-Aug-2019 08:56:06.924 SEVERE [localhost-startStop-1] org.apache.catalina.core.StandardContext.startInternal Context [] startup failed due to previous errors
09-Aug-2019 08:56:07.024 WARNING [localhost-startStop-1] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc The web application [ROOT] registered the JDBC driver [com.alibaba.druid.proxy.DruidDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
09-Aug-2019 08:56:07.024 WARNING [localhost-startStop-1] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc The web application [ROOT] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.

问题排查:

IDEA 打包环境JDK版本和Linux生产环境JDK版本不一致,导致线上Tomcat无法正常运行

解决方案:

  • 1、确保两边环境安装相同的jdk版本
  • 2、选择idea导航栏中Help -》Find Action,在弹框中输入Switch Boot JDK,在select Boot JDK中选择本机jdk版本,然后重启,在idea的Terminal运行java -version命令确认:
  • 3、打包后检查war包内META-INF下的MANIFEST.MF文件,查看编译环境,确保jdk版本(get以下META-INF的作用):
    Manifest-Version: 1.0
    Built-By: Administrator
    Created-By: Apache Maven 3.5.0
    Build-Jdk: 1.8.0_161

原文地址:https://www.cnblogs.com/monkjavaer/p/11329871.html

时间: 2024-10-20 13:06:20

记一次IDEA 打包环境JDK版本和生产环境JDK版本不一致引发的血案的相关文章

Maven 如何为不同的环境打包 —— 开发、测试和生产环境

在开发过程中,我们的软件会面对不同的运行环境,比如开发环境.测试环境.生产环境,而我们的软件在不同的环境中,有的配置可能会不一样,比如数据源配置.日志文件配置.以及一些软件运行过程中的基本配置,那每次我们将软件部署到不同的环境时,都需要修改相应的配置文件,这样来回修改,是个很麻烦的事情.有没有一种方法能够让我们不用修改配置就能发布到不同的环境中呢?当然有,这就是接下来要做的事. 当然,这里的前提是使用maven做为构建工具. 使用maven来实现多环境的构建可移植性,需要借助maven提供的pr

浅谈 什么是JAVA开发环境、测试环境及生产环境,及它的过程 (转)

从网上整理了一些回答加上个人理解. 环境分以下几种: 1.开发和配置环境:所有的开发和配置在这个环境里进行.一般情况下,只有这个环境可以改配置和进行开发,并且一般不在这个环境下创建数据.(开发环境就是每个开发人员电脑上的开发环境,只有开发人员可以配置和开发,写数据测试放在测试环境) 2.测试环境:新开发和配置通过系统传输到测试环境,进行功能测试,可以创建数据.(开发人员开发完上传到SVN,测试人员下载下来测试.我们公司测试人员不懂IDE,所以是由我们开发人员下载好,他直接通过IP地址访问来测试的

Jenkins测试环境到生产环境的一键部署策略(Windows)

Jenkins测试环境到生产环境的一键部署策略(Windows) 一.前言 前面我们已经初步实现了开发集成环境.测试环境的持续集成(自动化构建.自动化测试.自动化部署).但生产环境自动化部署迟迟没有推进.其原因主要在以下几个方面: 尚未实现部署之前的自动化备份 尚未实现部署出现问题后的自动化回滚 由于之前采用FTP上传部署需要生产环境开放FTP端口存在安全性问题且FTP会因为各种的网速问题,导致站点瞬间挂掉 只要解决以上三个问题,我们就可以初步实现生产环境的自动化部署. 二.实现思路 利用Jen

Confluence 6 从生产环境中恢复一个测试实例

请参考 Restoring a Test Instance from Production 页面中的内容获得更多完整的说明. 很多 Confluence 的管理员将会使用生产实例运行完整数据和服务的 Confluence 服务器,同时还会设置一个测试实例来测试升级等.在这种情况下,你的 Confluence 可以回运行 2 个不同的版本,而且也是非常常见的.这个文档将会知道你如何拷贝生产环境中的数据到一个测试实例中,同时测试环境的版本和生产环境中的版本还有可能是不同的. 在开始这个操作指南之前,

你只差这两步 | 将Sentinel 控制台应用于生产环境

摘要: 这是围绕 Sentinel 的使用场景.技术对比和实现.开发者实践等维度推出的系列文章的第四篇. 第一篇回顾:Dubbo 的流量防卫兵 | Sentinel如何通过限流实现服务的高可用性 - 传送门 第二篇回顾:RocketMQ 的保险丝| Sentinel 如何通过匀速请求和冷启动来保障服务的稳定性 - 传送门 第三篇回顾:技术选型:Sentinel vs Hystrix - 传送门 Sentinel 是阿里中间件团队研发的面向分布式服务架构的轻量级高可用流量控制组件,于今年7月正式开

企业中的软件开发——开发环境、测试环境、镜像环境与生产环境的区别

开发环境:开发环境是程序员们专门用于开发的服务器,配置可以比较随意,为了开发调试方便,一般打开全部的错误报告和测试工具,是最基础的环境.开发环境的分支,一般是feature分支. 测试环境:一般是克隆一份生产环境的配置,一个程序在测试环境工作不正常,那么就肯定不能把它发布到生产服务器上,是开发环境到生产环境的过渡环境.测试环境的分支一般是develop分支,部署到公司私有的服务器或者局域网服务器上,主要用于测试是否存在bug,一般会不让用户和其他人看到,并且测试环境会尽量与生产环境相似.有时测试

开发环境,生产环境,测试环境的区别

软件开发环境是指在基本硬件和宿主软件的基础上,为支持系统软件和应用软件的工程化开发和维护而使用的一组软件,简称SDE. 它由软件工具和环境集成机制构成,前者用以支持软件开发的相关过程,活动和任务,后者为集成和软件的开发,维护及管理提供统一的支持. 项目部署环境一般可以分为三种:生产环境,测试环境,开发环境. 开发环境:开发环境时程序员专门用于开发的服务器,配置可以比较随意,为了开发调试方便,一般打开全部错误报告和测试工具,是最基础的环境. 开发环境的分支,一般是feature分支. 测试环境:一

java_Mac安装多个JDK版本并设置环境变量

JDK6.JDK7.JDK8三个版本的汇总地址:https://pan.baidu.com/s/1pKSYv8Z 安装 JDK6安装 JDK6下载地址 见网盘 安装完毕后确认版本 JavaForOSX2014-001.dmg contains Javafor Mac OS X (1.6.0_65-b14-462).It will be installed to * /System/Library/Java * and /System/Library/Frameworks while Oracle

【JAVA环境配置免安装】如何由jdk的安装版本改成非安装版本

背景. 官网一般只提供windows下的exe文件,不提供zip打包文件.有些不愿意使用安装版本. 解决方法 本文以windows 7下安装jdk-6u35-windows-x64.exe为例说明 1. 下载jdk-6u35-windows-x64.exe 2. 创建一个目录命名为jdk6,名称位置随意. 3. 点击jdk-6u35-windows-x64.exe,选择路径为jdk6,继续. 4. 在选择安装路径的时候选择取消,此时免安装版本的文件已经存在于jdk6中.文件目录如下: 5. 此时