spring - 为什么 java.lang.NoSuchMethodError: org.springframework.util.ClassUtils.forName(Ljava/lang/String;)Ljava/lang/Class 在部署操作中被抛出?
问题描述
案例 1:
当我在 E1 环境中使用 Jenkins 部署应用程序时,它可以成功运行。应用程序已部署,Jenkins 控制台输出没有错误。
案例 2:
当我在另一个环境(比如 E2)中使用 Jenkins 部署相同的应用程序时,部署操作失败,但应用程序确实在服务器中部署。虽然我在 Jenkins 控制台中遇到错误。我很困惑,是代码问题还是服务器问题,我该如何解决?
以下是这种情况下的错误:
目标状态:在集群 xCluster 上部署失败
15:53:27 java.lang.NoSuchMethodError: org.springframework.util.ClassUtils.forName(Ljava/lang/String;)Ljava/lang/Class; 15:53:27 at org.springframework.oxm.jaxb.JaxbUtils.(JaxbUtils.java:44) 15:53:27 at org.springframework.oxm.jaxb.Jaxb2Marshaller.createJaxbContext(Jaxb2Marshaller.java:272) 15:53 :27 at org.springframework.oxm.jaxb.AbstractJaxbMarshaller.afterPropertiesSet(AbstractJaxbMarshaller.java:125) 15:53:27 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1687) 15:53 :27 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1624) 15:53:27 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory。
解决方案
感谢 Deinum 和 Roddy 的评论!
我能够解决问题/错误并且部署操作成功。
这是我所做的:
我在我的库中找到了多个版本的 spring-oxm。我不得不删除最旧的并保留来自 spring-boot-starter-web-services 工具包的最新的。一旦你有了 spring-oxm jar 的单一版本和最新版本,你应该能够成功构建、测试和部署。
这是问题的根本原因。
推荐阅读
- python - MD5/SHA-1等哈希算法能否生成比纯随机数碰撞概率更小的ID?
- python - 使用 numpy stride-tricks 对两个不同大小的移动窗口进行操作
- docker - docker-compose 创建多组服务
- ios - 将数据传回第一个 viewController
- openshift - windows 8下的minishift错误,vm无法访问?
- azure-cosmosdb - Cosmos DB 存储过程、UDF 和可重用代码 - 它们如何组合在一起?
- python - 如何从语料库中删除无意义或不完整的单词?
- asp.net-mvc - 多用户层 Google+ API?
- node.js - 为什么我的异步函数在使用 mysql2 时返回 undefine?
- python - 字符串拒绝连接?