用Java开发了一套基×管理系统,开发技术使用的是SpringMVC ,Hibernate。部署环境是Tomcat8 ,项目在本地跑的好好的。部署思路是很简单的。直接把项目拷贝到服务器,指向一下Tomcat配置文件即可。

本来应该是很顺利很简单的事情。可是修改完配置,跑起来一看。惊呼!

其实无论部署过多少次系统,多么熟练,在跑起来之前的一刹那,总是心存忐忑,果然!

洋洋洒洒的一大篇英文错误提示又一次浮现眼前。悲乎!

这意味着又要花费 “不确定的时间” 解决这些奇葩的症状。

HTTP Status 500 - Servlet.init() for servlet springmvc threw exception

type Exception report

message Servlet.init() for servlet springmvc threw exception

description The server encountered an internal error that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Servlet.init() for servlet springmvc threw exception

org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:522)

org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)

org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349)

org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:1110)

org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)

org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:785)

org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1425)

org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

java.lang.Thread.run(Unknown Source)

root cause

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.validation.beanvalidation.OptionalValidatorFactoryBean#0': Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.validator.internal.engine.ConfigurationImpl

org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574)

org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)

org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)

org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303)

org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)

org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299)

org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)

org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:755)

org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757)

org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480)

org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:664)

org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:630)

org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:678)

org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:549)

org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:490)

org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136)

javax.servlet.GenericServlet.init(GenericServlet.java:158)

org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:522)

org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)

org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349)

org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:1110)

org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)

org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:785)

org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1425)

org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

java.lang.Thread.run(Unknown Source)

root cause

java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.validator.internal.engine.ConfigurationImpl

org.hibernate.validator.HibernateValidator.createGenericConfiguration(HibernateValidator.java:41)

javax.validation.Validation$GenericBootstrapImpl.configure(Validation.java:276)

org.springframework.validation.beanvalidation.LocalValidatorFactoryBean.afterPropertiesSet(LocalValidatorFactoryBean.java:223)

org.springframework.validation.beanvalidation.OptionalValidatorFactoryBean.afterPropertiesSet(OptionalValidatorFactoryBean.java:40)

org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1633)

org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1570)

org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)

org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)

org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303)

org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)

org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299)

org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)

org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:755)

org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757)

org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480)

org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:664)

org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:630)

org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:678)

org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:549)

org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:490)

org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136)

javax.servlet.GenericServlet.init(GenericServlet.java:158)

org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:522)

org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)

org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349)

org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:1110)

org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)

org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:785)

org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1425)

org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

java.lang.Thread.run(Unknown Source)

note The full stack trace of the root cause is available in the Apache Tomcat/8.5.4 logs.

Apache Tomcat/8.5.4

必须要找到解决问题的方法!

尝试1:用法眼直接看,盯了这篇文章1分钟,想了3分钟,无头无序,还是丈二和尚摸不着头脑。无奈放弃。

尝试2:用度娘

找到错误的关键字,搜!!!

java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.validator.engine.ConfigurationImp

可是度娘对英文错误,天生不敏感,翻看了前3页面的搜索结果,觉得靠谱的点了点,最终结果仍然是个死局。耗时20分钟!!!

尝试3:用杀手锏,谷歌老爹。

翻上VPN,搜索那段英文,第一条 是 stackoverflow上的一条。这是俺最喜欢的结果。急迫的点开。

在这篇文章的最佳答案中找到了这句话:

I had two version of slf4j-api in my classpath - slf4j-api-1.6.1.jar as well as slf4j-api-1.5.8.jar. I removed the latter and that solved my issue with

"java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.validator.engine.ConfigurationImpl".

这个解决方案感觉跟自己的症状毫不相干啊。怀着将信将疑,死马当活马医的心情,去排查了一下服务器上,果然。。。

的确有重复的slf4j-api的jar文件。只是版本号不一样。删掉旧版本jar。

重启tomcat,刷新浏览器,雅致的蓝色登录页面立刻出现在眼前。

问题解决,心情释然。

费洪荒之力解决部署Java项目遇到的Hibernate奇葩状相关推荐

  1. 纯java的方式实现自定义自动化部署java项目

    纯java的方式实现自定义自动化部署java项目 前言 使用第三方的服务或插件实现部署所存在的问题 自动化部署java项目 java项目部署方式 流程 代码实现 打包 使用 java 执行 cmd 进 ...

  2. jenkins部署 java项目到远程 windows服务器

    jenkins部署 java项目到远程 windows服务器 1.查看windows服务器是否有 ssh服务. cmd模式,输入 ssh.如果报错就去安装ssh(可以去下 openSSH) 2.然后直 ...

  3. JSD-2204-续 配置中心-Nginx-Linux部署java项目-Day19

    1.续 配置中心 上次课我们完成了cart模块的数据库配置信息添加到nacos的操作 我们也删除了cart模块原有的连接数据库信息的配置 下面开始,我们尝试连接nacos配置中心,读取数据库配置信息, ...

  4. 云服务器开启ftp_阿里云搭建wordpress 及部署java项目

    很久之前,小编就买了一年的阿里云服务器,也购买了域名,一直都没有时间,加上自己对linux的知识不足,最后小编终于把wordpress和tomcat同时部署在一个服务器上, 先简单说说阿里云的购买流程 ...

  5. docker compose java_Docker-compose部署java项目

    Docker-compose部署java项目 前置条件: 安装docker 安装docker-compose 防火墙啥的都设置好 dockerfile-demo FROM java:8 VOLUME ...

  6. jenkins——部署java项目(2)

    2019独角兽企业重金招聘Python工程师标准>>> 部署java项目--创建私有仓库 java的项目是需要编译和打包的  编译和打包用maven完成,所以需安装maven  本次 ...

  7. 宝塔面板如何部署Java项目教程【新版】

    在新版的宝塔面板里,对JAVA支持已经越来越友好了,操作更加方便简单. 首先,将你你宝塔面板升级到7.8版本以上,点击右上角的"更新"即可自动更新到最新版本.如图 关于新版的宝塔面 ...

  8. 阿里云轻量云服务器部署java项目

    阿里云轻量云服务器部署java项目 前言:阿里云最新推出了轻量云服务器,说是可以简化配置.看重他是因为带宽明显提升.就继续照着ecs服务器的方式安装了一系列环境.系统是阿里云的Centos7.3.JD ...

  9. 如何在虚拟主机上部署java项目_如何在虚拟主机上部署java项目

    如何在虚拟主机上部署java项目?在虚拟主机上部署 JavaWeb 项目也离不开Web项目部署的基础三要素:基础的 JDK 环境:一个 Web服务器,如 Tomcat.JBoss:一款数据库,如:my ...

最新文章

  1. mysql更改数据文件目录及my.ini位置| MySQL命令详解
  2. Mybatis映射文件动态SQL语句-02
  3. 学会了很多计算机小技巧,超实用的八个电脑小技巧,全都学会让你成为电脑高手...
  4. linux下使用TC模拟弱网络环境
  5. 以相关组为基础的3D物体识别
  6. 使用windows2008R2自带磁盘管理进行分区
  7. keystone环境搭建(源码方式+yum方式)(ocata版本)
  8. Java基础---Java---基础加强---类加载器、委托机制、AOP、 动态代理技术、让动态生成的类成为目标类的代理、实现Spring可配置的AOP框架
  9. 后期强蒙版大师破解版
  10. 方正计算机如何用u盘安装系统,方正电脑用u盘装系统操作方法
  11. 怎样快速打出初中常用的化学反应方程式
  12. 节约中小企业运维成本方案
  13. 纯粹的Pure Storage,简单却又不简单
  14. 如何取消文件关联,恢复文件默认的图标,最简单的办法!!!!!
  15. ApacheCN 计算机视觉译文集 20210218 更新
  16. Mysql数据库报错1264
  17. bat 打开常用软件
  18. 百度云主机BCC挂载云盘CDS
  19. python第四章上机练习 简单代码
  20. 新松机器人产业小镇_总投资35亿元!新松机器人产业园及创新公共服务平台项目落户永修组团...

热门文章

  1. uboot编译全过程
  2. 音乐背景声提取 matlab,如何从视频中提取背景音乐 但不要对白, 视频片段背景音乐很好听怎么提取不要有人讲话...
  3. 布隆过滤器以及应用介绍
  4. 算法工程师体验了一下chatGPT,已经上瘾了!
  5. 无损音乐刻录成cd有意义吗_720P到4K画质提升清晰可见,为什么音质从标准到无损都差不多?...
  6. 信息学奥赛一本通:1083:计算星期几
  7. 三国志战略版:Daniel_蔡文姬_武锋阵_1.13日更新分析
  8. mysql DatabaseMetaData使用说明
  9. python图形用户界面形式_Python图形用户界面-阿里云开发者社区
  10. HDU4752 Polygon