NoSuchMethodException: springframework.boot.autoconfigure.http.HttpMessageConverters

2023-11-26

我想将 Java 9 与 Spring 一起使用。但我得到例外:

Caused by: org.springframework.aop.framework.AopConfigException: Unable to instantiate proxy using Objenesis, and regular proxy instantiation via default constructor fails as well; nested exception is java.lang.NoSuchMethodException: org.springframework.boot.autoconfigure.http.HttpMessageConverters$$EnhancerBySpringCGLIB$$1d90bff9.<init>()
    at deployment.datalis_gateway.war//org.springframework.aop.framework.ObjenesisCglibAopProxy.createProxyClassAndInstance(ObjenesisCglibAopProxy.java:82)
    at deployment.datalis_gateway.war//org.springframework.aop.framework.CglibAopProxy.getProxy(CglibAopProxy.java:205)
    ... 62 more
Caused by: java.lang.NoSuchMethodException: org.springframework.boot.autoconfigure.http.HttpMessageConverters$$EnhancerBySpringCGLIB$$1d90bff9.<init>()
    at java.base/java.lang.Class.getConstructor0(Class.java:3302)
    at java.base/java.lang.Class.getDeclaredConstructor(Class.java:2512)
    at deployment.datalis_gateway.war//org.springframework.aop.framework.ObjenesisCglibAopProxy.createProxyClassAndInstance(ObjenesisCglibAopProxy.java:76)
    ... 63 more

你知道我如何配置 Java 9 来找到这个受限的 Java 包吗?


当我尝试将 Spring Boot 2 应用程序部署到 Wildfly 13 时,我遇到了同样的错误。这是我在寻找答案时出现的唯一 Stack Overflow 问题,所以我想我应该将我的发现留在这里,以防其他人使用有同样的问题,因为我的解决方案与现在这里唯一的其他答案非常不同。

我的应用程序使用嵌入式 Tomcat 服务器运行得很好,但部署到 Wildfly 会失败,并出现此问题中询问的相同 AopConfigException 。我还注意到异常的根本原因是 Spring 正在寻找无参数构造函数,当我在所有自动装配的 Spring 组件中添加无参数构造函数时,该服务实际上部署到 Wildfly 并运行没有任何问题。但这似乎是一种奇怪的解决方法,感觉不对,所以我寻找更好的解决方案。

我从中学到了这个 github 问题这个异常发生在 Wildfly 中,因为 Jboss 模块没有公开 Objenesis 进行构造函数注入所需的一些依赖项。他们给出的建议解决方案是通过简单地更新项目构建来添加依赖项,如下所示:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <configuration>
        <archive>
            <manifestEntries>
                <Dependencies>jdk.unsupported</Dependencies>
            </manifestEntries>
        </archive>
    </configuration>
</plugin>

如果这对你有用,那么恭喜你。我拼凑出来自这个 JBoss 问题上述解决方案只是在 MANIFEST.MF 文件中添加“jdk.unsupported”作为“依赖项”的一种方法。对我来说不幸的是,这是 Maven pom 的一部分,而我的团队使用 Gradle 进行构建管理,所以我必须找到另一个解决方案。

适用于 Gradle 或 Maven 的解决方案

尽管可能有 Gradle 特定的方法来完成上述任务,但我发现这个 JBoss 开发指南您可以使用包含以下内容的 jboss-deployment-struct.xml 将依赖项添加到 MANIFEST.MF 中:

<jboss-deployment-structure>
    <deployment>
        <dependencies>
            <module name="jdk.unsupported"/>
        </dependencies>
    </deployment>
</jboss-deployment-structure>

即使您确实使用 Maven,这似乎也是首选解决方案,因为如果您以后切换到 Gradle,它的工作原理是一样的。当然,此解决方案仅在问题仅限于 JBoss/Wildfly 时才有效。

*注意(以防 JBoss 指南的链接失效):jboss-deployment-struction.xml 文件分别位于 war/jar 应用程序的 WEB-INF 或 META-INF 目录中。

另外值得注意的是,我在 Java 11 和 Wildfly 13 上看到了这个问题,但我非常怀疑 Java 9 和 10 以及其他版本的 JBoss/Wildfly 上也存在同样的问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NoSuchMethodException: springframework.boot.autoconfigure.http.HttpMessageConverters 的相关文章

  • 为什么 Java 中需要 String[] args?

    我知道 String args 是作为参数传递到 main 的字符串数组 java Print Hello World class Print public static void main String args System out p
  • 如何获取JavaFX的版本号?

    如何在运行时找出我正在使用哪个版本的 JavaFX 简单的方法之一就是简单地阅读javafx properties文件位于您的 JAVA HOME jre lib目录 我现在安装了 Java 1 7 u9 与之捆绑的 JavaFX 是 v2
  • 如何使用 Java2D 创建硬件加速图像?

    我正在尝试创建一个快速图像生成器 它可以执行大量 2d 转换和形状渲染 因此我尝试使用 BufferedImage 然后获取 Graphics2D 对象来执行所有绘图 我现在主要关心的是 make 速度非常快 所以我创建一个像这样的 Buf
  • 如何为连接表中的其他属性创建多对多 Hibernate 映射?

    我需要一个多对多的休眠映射需要 3 个连接 我试图找到一个没有中间实体的解决方案 例如LecturerCourse 我的数据库中的讲师和课程表之间存在多对多关系 一门课程可以由多名讲师讲授 而一名讲师可以讲授多门课程 我事先存储了课程 但是
  • JConsole主类

    我正在尝试使用其 Main 类从命令行启动 JConsole 我提取了 jconsole jar 的内容 在 MANIFEST MF 中我可以看到 Main Class sun tools jconsole JConsole 所以我尝试运行
  • ActiveMQ 桥连接器到 WebSphereMQ 而不使用 XML 配置

    我想在嵌入式代理中创建一个代理来代理 ActiveMQ 和 WebSphere MQ 之间的连接 我知道 activemq 中存在网络连接器来执行此操作 代理到代理 但我不知道如何配置它以连接到 WebSphere MQ 在网络上进行搜索时
  • 在java中迭代日期

    我需要遍历一系列日期 不确定如何在 for 循环中获取第二天 我在用java util Date So plusDays 1 不能在 for 循环中用于获取下一个日期 Used date1 new Date date1 getTime 10
  • 自 Java 7 以来 HttpServer 延迟 1 秒

    我们正在使用内部HttpServer项目中的类 用于通过 HTTP 在客户端和服务器之间交换数据 当我们切换到 Java 7 时 我们意识到结果交付存在延迟 我们可以将问题简化为以下示例 Class EchoServer创建上下文 echo
  • 使用 Spring 的 SimpleNamingContextBuilder 的应用程序如何知道在其目录中搜索资源?

    使用 Spring 的应用程序如何SimpleNamingContextBuilder http static springsource org spring docs 3 0 x api org springframework mock
  • Eclipse:对 Java 1.7 的失望(未绑定库)

    我在全新安装的 Eclipse 中处理全新项目时遇到问题 重现步骤 下载此版本的 Eclipse http www eclipse org downloads packages eclipse ide java developers hel
  • .NET 中的 Class.forName() 等效项?

    动态获取对象类型然后创建它的新实例的 C 方法是什么 例如 如何在 C 中实现以下 Java 代码的结果 MyClass x MyClass Class forName classes MyChildClass newInstance Lo
  • JNA Windows 服务启动类型

    我一直在使用 JNA 并且能够使用下面的代码返回 Windows 服务的状态 即启动或停止 但我不确定如何返回服务的启动类型 我确信 JNA 之外还有其他方法 但如果可能的话我想继续使用 JNA import com sun jna imp
  • 使用相对于配置文件的路径引用 Spring 属性文件

    我正在将属性从 Spring 配置文件内部移动到单独的属性文件中 这包含在配置文件中
  • Tomcat 与 Weblogic JNDI 查找

    我们使用的 Weblogic 服务器已配置为允许 JNDI 数据源名称 例如 appds 对于开发 本地主机 我们可能会运行 Tomcat 并且在 server xml 的 部分中声明时 Tomcat 会将 JNDI 数据源挂在 JNDI
  • 术语“可序列化”是什么意思? [复制]

    这个问题在这里已经有答案了 不太确定我读过的定义可序列化实际上做了什么 import java io Serializable import java text StringCharacterIterator import java uti
  • 如何为信号量中等待的线程提供优先级?

    我使用信号量来限制访问函数的线程数量 我希望接下来要唤醒的线程应该由我将给出的某个优先级选择 而不是默认信号量唤醒它们的方式 我们怎样才能做到这一点 这是实现 class MyMathUtil2 implements Runnable do
  • 来自 Janino 和 Commons-Compiler 的 Spark java.lang.NoSuchMethodError

    我正在构建一个使用 Spark 进行基于随机森林分类的 应用程序 当尝试运行该程序时 我从该行收到异常 StringIndexerModel labelIndexer new StringIndexer setInputCol label
  • 为什么永久代空间不断增长?

    我读过几篇文章 我理解以下内容 如果我错了 请纠正我和 或编辑问题 java堆是这样分段的 年轻代 创建的对象放在这里 这部分被频繁且廉价地垃圾收集 老一代 在年轻代的垃圾收集中幸存下来的对象会移到此处 该区域的垃圾收集频率较低 并且使用对
  • 所有语言中特殊字符的 Java 正则表达式

    在我的用户输入字段中 我想允许某些特殊字符 字母和数字的组合 我应该确保正则表达式模式在输入时允许此设置任何语言 基本上我构建的这个正则表达式也应该支持 unicode 表示 如何使用 Java 中的 Pattern 类来实现这一点 这里给
  • 如何将 Hibernate 5 安装到 Apache Karaf v4 中

    我已经安装了 Apache Karaf v4 03 并查询了 Hibernate 的可用功能列表 如下所示 不幸的是 我使用的是 Hibernate v5 hibernate 3 3 2 GA Uninstalled enterprise

随机推荐

  • Skimr - 似乎无法生成直方图

    遇到了这个看似新的软件包 skimr 它看起来很漂亮 并且正在尝试它 看起来我缺少一些软件包安装 Skim 工作正常 只是它不打印直方图 它应该打印数字变量 我只是尝试文档中给出的示例 链接到 skimr 文档 https github c
  • 从python脚本访问django数据库

    我正在尝试从常规 Python 脚本中访问我的 Django 数据库 到目前为止我所做的是 import os import django from django db import models os environ setdefault
  • MailComposer didFinishWith 结果在 Swift 3.0 中不起作用

    我将我的应用程序转换为 swift 3 0 并遇到问题MailComposeController 当我调用函数时 func mailComposeController controller MFMailComposeViewControll
  • 在 Google Apps 脚本中从服务器到客户端进行通信

    我正在尝试编写一个具有客户端和服务器端组件的 Google Apps 脚本 客户端组件显示进度条 客户端调用服务器端函数 异步调用 其进度必须显示在客户端进度栏中 现在 我想要的是能够根据服务器端功能的反馈来更新客户端进度条 这可能吗 由于
  • 获取容器的 docker run 命令

    我有一个我创建的容器 但我不记得确切的内容docker run我用来启动它的命令 有什么办法可以找回吗 这与查看 Docker 中运行 停止容器的完整命令我想知道的是生成容器的完整 docker 命令 而不是容器内的命令 您可以通过查看输出
  • Matplotlib 中的非线性第二轴

    我想知道如果没有任何解析公式 是否有一种方法可以在 Matplotlib 中添加第二个非线性 x 轴 或者简化是否有办法为原始 x 轴中的每个数字创建不同的标签 下图解释了我正在寻找的内容 不幸的是类似question之前已被问过但未得到答
  • 如何在Java中使用Collections.sort()?

    我得到了一个物体Recipe实现Comparable
  • 需要在每个 cron 作业之前设置 rvm 环境

    我大致按照这组说明的第一部分中概述的模式安装和配置 RVM http blog ninjahideout com posts a guide to a nginx passenger and rvm server 基本上 这意味着没有预构建
  • 带有单击事件处理程序的 WPF 命令

    当我使用Command in a Button控制加入的事件处理程序Click事件永远不会引发 我怎样才能使用Command并处理Click事件处理程序 您可以将 ICommand 附加到另一个属性并从 Click 处理程序中执行它
  • Chrome DevTools - 性能选项卡摘要

    在 Chrome DevTools 的 性能 选项卡上 摘要 面板显示多个活动类别的计时 加载 脚本编写 渲染 绘画 系统 空闲 我似乎无法在 DevTools 文档中找到每个类别所代表的内容的简明描述 我觉得我必须忽略一些显而易见的事情
  • 如何将两个div并排放置? [复制]

    这个问题在这里已经有答案了 考虑以下代码 wrapper width 500px border 1px solid black first width 300px border 1px solid red second border 1px
  • 如何将 package.json 数组传递给 grunt.js

    有没有办法将数组从 package json 文件传递 给 grunt js 我尝试了几种不同的方法 但似乎都不起作用 我目前有 global module false module exports function grunt Proje
  • 如何制作模块向量?

    我想实例化一个一维元素数组 并且元素扩展模块 我该怎么做 如果我说我最好的猜测 那就是 val elements Vec 64 new element 我收到以下错误消息 error Users mykland work chisel ar
  • 如何从 PHP 调用 Perl 脚本?

    我有兴趣了解如何在 PHP 中调用 运行 Perl 脚本 您可以在 Php 代码中使用简单的 Php Perl 扩展 这将允许您执行代码和 Perl 变量 函数以及实例化对象 perl new Perl perl gt require te
  • 如何在启动repl时默认加载ns

    我用的是lein2 我想在 repl 启动时默认加载一些 ns 当为该项目执行 lein2 repl 时 是否可以在 project clj 中指定应加载的 ns 你会在其中找到很多答案示例项目 Options to change the
  • Bootstrap:在标签内输入

    为了避免表单上的每个输入元素都有一个 ID 我想将表单输入放在label 引导程序 3 我的问题是 这导致行之间有额外的垂直间距 输入没有填充其父级的整个宽度 并且输入未对齐
  • 使用UINT64_C的目的?

    我在 boost 源中找到了这一行 const boost uint64 t m UINT64 C 0xc6a4a7935bd1e995 我想知道这里使用宏的目的是什么 这一切所做的就是添加ULL到提供的常数 我认为它可能会被用来让人们更难
  • 剃须刀要求;当使用(Html.BeginForm())时

    using Html BeginForm Name Html TextBoxFor o gt o Name
  • C# 中的拍手声检测

    我希望能够检测到拍手声 对于任何形式的声音识别都很陌生 有什么简单的方法可以做到这一点吗 如果没有 有什么好的 C 声音识别 检测资源吗 我的目标是通过一些基本的基于拍手的控制来实现客户媒体中心的自动化 以前也有人问过类似的问题 给定音频流
  • NoSuchMethodException: springframework.boot.autoconfigure.http.HttpMessageConverters

    我想将 Java 9 与 Spring 一起使用 但我得到例外 Caused by org springframework aop framework AopConfigException Unable to instantiate pro