首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

记一次SpringBoot项目启动卡住问题排查记录

原来event是一个Spring上下文初始化失败异常事件对象,对象里包含了具体异常信息,如箭头所指,关键异常信息如: NoSuchMethodError:"org.springframework.util.ObjectUtils.unwrapOptional...出现NoSuchMethodError异常,是因为调用方法时候,找不到方法了。一般出现在两个有关联jar包,但是版本对不上了,也就是常说jar版本依赖冲突。...因为之前依赖是没有问题,为什么现在spring上下文会调用5.x版本方法呢? 所以先假设近期有开发在pom.xml里添加了新依赖,导致了这个问题。...在定位到问题后,如NoSuchMethodError这样异常,需要平时经验积累来假设问题真实原因,然后在追本溯源验明问题所在根本原因。找问题本质一定要这种循序渐进思路。...就会有很多内容,很容易解决问题。

5.6K20
您找到你想要的搜索结果了吗?
是的
没有找到

记录一次 Spring boot 应用排错过程

原来event是一个Spring上下文初始化失败异常事件对象,对象里包含了具体异常信息,如箭头所指,关键异常信息如: NoSuchMethodError:"org.springframework.util.ObjectUtils.unwrapOptional...出现NoSuchMethodError异常,是因为调用方法时候,找不到方法了。一般出现在两个有关联jar包,但是版本对不上了,也就是常说jar版本依赖冲突。...因为之前依赖是没有问题,为什么现在spring上下文会调用5.x版本方法呢? 所以先假设近期有开发在pom.xml里添加了新依赖,导致了这个问题。...在定位到问题后,如NoSuchMethodError这样异常,需要平时经验积累来假设问题真实原因,然后在追本溯源验明问题所在根本原因。找问题本质一定要这种循序渐进思路。...就会有很多内容,很容易解决问题。 来源:http://suo.im/55CotD

76910

你知道为什么Javamain方法必须是public static void?

Main 方法是我们学习 Java 编程语言时知道第一个方法,你是否曾经想过为什么 main 方法是 public、static、void 。...当然,很多人首先学是 C 和 C++,但是在 Java 中 main 方法与前者有些细微不同,它不会返回任何值,为什么 main 方式是 public、static、void,这篇文章尝试去找到一些答案...因为 main 返回任何值对程序都没任何意义,所以设计成 void,意味着 main 不会有任何值返回。...2、如果 JVM 找不到 main 方法就抛出 NoSuchMethodError:main 异常,例如:如果你运行命令:java HelloWrold,JVM 就会在 HelloWorld.class...5、当你看到“Exception in Thread main”如:Excpetion in Thread main:Java.lang.NullPointedException,意味着异常来自于 main

1.6K40

精神哥讲Crash(二): java.lang.NoSuchMethodError

话不多说,下来精神哥给大家分享第二个Crash是“java.lang.NoSuchMethodError”。...java.lang.NoSuchMethodError 问题根本原因是开发编译时所依赖环境,跟实际App运行环境不匹配。 二、错误场景分析 1、你就喜欢搞新API,这么喜新厌旧!你家妞知道不?...现状描述 谷歌还是比较小心,精神哥发现AndroidSDK及Android亲儿子设备上,这些@DeprecatedAPI基本上都保留了,谷歌最多就是置空实现或直接抛出一个非法访问异常,所以开发过程中并没有感觉到...,所以出现大量java.lang.NoSuchMethodErrorCrash!...这很有效,但也很危险,因为谷歌随时会调整,会导致你App出现各种诡异java.lang.NoSuchMethodError! 很多同学认为public私有API,谷歌不会乱改,可以大胆用。

1.4K50

你知道为什么Javamain方法必须是public static void?

来源:http://suo.im/6v9d64 Main 方法是我们学习 Java 编程语言时知道第一个方法,你是否曾经想过为什么 main 方法是 public、static、void 。...当然,很多人首先学是 C 和 C++,但是在 Java 中 main 方法与前者有些细微不同,它不会返回任何值,为什么 main 方式是 public、static、void,这篇文章尝试去找到一些答案...因为 main 返回任何值对程序都没任何意义,所以设计成 void,意味着 main 不会有任何值返回。...2、如果 JVM 找不到 main 方法就抛出 NoSuchMethodError:main 异常,例如:如果你运行命令:java HelloWrold,JVM 就会在 HelloWorld.class...5、当你看到“Exception in Thread main”如:Excpetion in Thread main:Java.lang.NullPointedException,意味着异常来自于 main

39020

终于搞懂,为什么 Java main 方法必须是 public static void?

总结 ---- Main 方法是我们学习 Java 编程语言时知道第一个方法,你是否曾经想过为什么 main 方法是 public、static、void 。...当然,很多人首先学是 C 和 C++,但是在 Java 中 main 方法与前者有些细微不同,它不会返回任何值,为什么 main 方式是 public、static、void,这篇文章尝试去找到一些答案...因为 main 返回任何值对程序都没任何意义,所以设计成 void,意味着 main 不会有任何值返回。...2.如果 JVM 找不到 main 方法就抛出 NoSuchMethodError:main 异常,例如:如果你运行命令:java HelloWrold,JVM 就会在 HelloWorld.class...5.当你看到“Exception in Thread main”如:Excpetion in Thread main:Java.lang.NullPointedException,意味着异常来自于 main

60310

面试官:为什么 Java main 方法必须是 public static void?

来源:suo.im/6v9d64 Main 方法是我们学习 Java 编程语言时知道第一个方法,你是否曾经想过为什么 main 方法是 public、static、void 。...当然,很多人首先学是 C 和 C++,但是在 Java 中 main 方法与前者有些细微不同,它不会返回任何值,为什么 main 方式是 public、static、void,这篇文章尝试去找到一些答案...因为 main 返回任何值对程序都没任何意义,所以设计成 void,意味着 main 不会有任何值返回。...2.如果 JVM 找不到 main 方法就抛出 NoSuchMethodError:main 异常,例如:如果你运行命令:java HelloWrold,JVM 就会在 HelloWorld.class...5.当你看到“Exception in Thread main”如:Excpetion in Thread main:Java.lang.NullPointedException,意味着异常来自于 main

59930

面试5年25K程序员回答不出来为什么Javamain方法必须是public static void?

p=5107 最近接连不断面试了不少中高级程序员,我问到“为什么 Java main 方法必须是 public static void?”几乎没人能回答出来。...Main 方法是我们学习 Java 编程语言时知道第一个方法,你是否曾经想过为什么 main 方法是 public、static、void 。...当然,很多人首先学是 C 和 C++,但是在 Java 中 main 方法与前者有些细微不同,它不会返回任何值,为什么 main 方式是 public、static、void,这篇文章尝试去找到一些答案...因为 main 返回任何值对程序都没任何意义,所以设计成 void,意味着 main 不会有任何值返回。...2.如果 JVM 找不到 main 方法就抛出 NoSuchMethodError:main 异常,例如:如果你运行命令:java HelloWrold,JVM 就会在 HelloWorld.class

43730

四问四答Java异常抛出和处理

stripe-javarequest方法为例: /** * Sends the given request to Stripe's API, and returns a buffered...", Stripe.getApiBase(), e.getMessage()), e); } } 该方法向stripe API发送请求,它抛出了一个...最好提供提供处理指引,像上面提到stripe-javarequest方法错误描述。 原始Throwable类 引起该异常源头。保留完整信息,便于使用者定位、排查问题。...对于具体业务,如果有需要,我们还可以抽象合适异常层级或者添加业务信息。例如stripe-javaStripeException。...在上面的stripe-javarequest方法中,可以选择在request内调用内部方法遇到异常时就捕获并处理,例如主动进行1次重试,遇到特定httpcode作特定操作。 但这不是最好处理方式。

27010

Java 异常进阶Java异常简介天使变恶魔无处不在throws手足无措API使用者疲于应付API用户正确地使用Checked Exception

在使用Java编写应用时候,我们常常需要通过第三方类库来帮助我们完成所需要功能。有时候这些类库所提供很多API都通过throws声明了它们所可能抛出异常。...Java异常简介 在详细介绍Checked Exception所导致问题之前,我们先用一小段篇幅简单介绍一下Java异常。...在Java中,异常主要分为三种:Exception,RuntimeException以及Error。这三类异常都是Throwable子类。...为什么这两种异常会有如此大区别呢?因为RuntimeException所表示是软件开发人员没有正确地编写代码所导致问题,如数组访问越界等。...天使变恶魔 既然JavaChecked Exception能够提高用户代码质量,为什么还有那么多人反对它呢?原因很简单:它太容易被误用了。

51760

为什么 main 方法是 public static void ?

---- 文章目录 1、为什么main方法是静态(static) 2、为什么main方法是公有的(public) 3、为什么main方法没有返回值(Void) 4、总结 main 方法是我们学习Java...当然,很多人首先学是C和C++,但是在Java中main方法与前者有些细微不同,它不会返回任何值,为什么 main 方法是 public、static、void,这篇文章尝试去找到一些答案。...2、为什么main方法是公有的(public) Java指定了一些可访问修饰符如:private、protected、public,任何方法或变量都可以声明为public,Java可以从该类之外地方访问...因为main方法是公共,JVM就可以轻松访问执行它。 3、为什么main方法没有返回值(Void) 因为main返回任何值对程序都没任何意义,所以设计成void,意味着main不会有任何值返回。...4、总结 main方法必须声明为public、static、void,否则JVM没法运行程序 如果JVM找不到main方法就抛出NoSuchMethodError:main异常,例如:如果你运行命令

31420

(一)组件治理之多仓组件化编译一些问题

首先介绍下我们项目结构,我们是组件化开发,不同业务组件存放在各自仓库之中,组件通过提供 api 方式供其他业务调用,大致效果图如下: 实现层模块与模块之间不直接依赖,只通过依赖 api 层服务发现机制来触发实现层调用...我们版本开发是走班车制度,每个版本都会有很多需求上车,每个需求合入都是打好 release 组件合入壳工程,如果对外暴露 API 模块或是底层模块稍有不注意外部调用情况,就会出现很多隐蔽编译问题被带到运行时...2、运行时 NoClassDefFoundError、NoSuchMethodError、NoSuchFieldError 异常 这类异常贡献了主要力量,主要集中在高版本不兼容低版本上,例如只升级了...3、kotlin 默认参数 kotlin 语法糖在背后做了很多事情,因为新版本对 data class 新增了个默认参数,导致使用到这个 data class 组件报了 java.lang.NoSuchMethodError...方法,如果在壳工程上直接升级 compileSDK 为 33,并且,适配文档中没有考虑到,将会在运行时发生 NoSuchMethodError 异常

18120

绝佳API设计秘诀

API文档需要具有内在可发现性和易用性 - 就像API本身一样。Stripe是一个很好例子。它文档易于导航,左侧边栏上有清晰目录,以及通过Stripe API成功收取付款简单6步流程。...例如,可以延迟推出API异常,这些异常可能会以抽象一致性名义改进您产品,因此请务必找到合理平衡点。 4.面向未来API 今天,世界倾向于通过JSON移入和移出数据。...取决于您受众,可能会有所不同,并且在几年内可能会有所不同。添加GraphQL API可能更好。 开发人员会查看您API以消除其工作流程中摩擦。...这要求它支持Stripe API每个版本,从最初概念到最新推出。如果仓促或不正确地对API进行重大更改会产生严重业务影响,这就是为什么有些公司选择与Stripe相同版本控制方法。...如果您没有资源来构建像Stripe这样版本化系统,那么能够很好地沟通变更是一种较低预算,较小规模处理方式。 API版本控制可能具有不同复杂程度。

52920

关于Java异常Exception最常见十大问题1 受检异常 VS 非受检异常2 异常管理最佳实践3 为什么在try语句中定义变量不能在catch和finally语句中使用?4 为什么Doubl

非受检异常是由哪些在程序编译时不能被解决问题所引起,常见有除以0,空指针等等。 受检异常非常重要,因为你希望其他使用你程序API开发者知道如何去处理这些异常。...Paste_Image.png 2 异常管理最佳实践 如果一个异常能够被正确处理,那么他就该捕获,反之,则该被抛出 3 为什么在try语句中定义变量不能在catch和finally语句中使用?...throws java.lang.NullPointerException 5 Java中最常见runtime异常,运行时异常 常见有IllegalArgumentException ArrayIndexOutOfBoundsException...答案是可以! 10 为什么开发者么总是默默“消灭”异常?...,为什么不仔细处理异常呢?

1.1K41

小白入门学习打日志

而之前写了一篇:在公司做项目和自己在学校做有什么区别?中就有提到:公司项目不会有e.printStackTrace();这种代码存在。...这个我们可以按学JDBC时候去理解: 无论我是接入MySQL、Oracle还是SQL Server,但我接口永远都是那一套,切换数据库时不需要更改我Java API 看了一下公司项目,采用是SLF4J...我们用Exception不就可以捕获所有的异常了么,Exception是Throwable一个子类,但Exception已经是包含所有的Java异常了呀” 众所周知,Throwable有两个子类: Error...什么情况会抛出 NoSuchMethodError 呢?...这些情况,即 使代码编译期是正确,但在代码运行期时,会抛出 NoSuchMethodError

50420

ClassNotFoundException,NoClassDefFoundError,NoSuchMethodError排查

前言 在使用java开发过程中时常会碰到以上三个错误,其中NoClassDefFoundError、NoSuchMethodError两个error遭遇得会多一些。...本文会简单分析三个异常发生原因,并给出排查思路和相关工具。...ClassNotFoundException异常场景有限,所以通常遭遇得比较少,如果遭遇了只要查找classpath是是否真的存在对应类即可。...如果你运气好的话,可能在该错误上方看到java.lang.ExceptionInInitializerError错误堆栈从而找到对应出错地方;如果运气不好的话,该异常可能被吞掉,如果出问题类你有权限修改的话...,你可以显式catch异常打印日志,如果是二方包或者三方包的话...可能要使用比较tricky手段了。

1.9K30

为什么不建议使用Date,而是使用Java8新时间和日期API

Java 8:新时间和日期APIJava 8之前,所有关于时间和日期API都存在各种使用方面的缺陷,因此建议使用新时间和日期API,分别从旧时间和日期API缺点以及解决方法、Java 8...新时间和日期API进行讲解。...旧时间和日期API缺陷 Java java.util.Date 和 java.util.Calendar 类易用性差,不支持时区,而且都不是线程安全。...和 parse 方法地方进行加锁 => 线程阻塞性能差 使用 ThreadLocal 保证每个线程最多只创建一次 SimpleDateFormat 对象 => 较好方法 Java 8 新时间和日期...API Java 8日期和时间类包含 LocalDate、LocalTime、Instant、Duration 以及 Period,这些类都包含在 java.time 包中,Java 8 新时间API

1.9K30
领券