apache-camel - 使用骆驼从 RabbitMq 读取消息时,quarkus 开发模式下的 ClassNotFound 异常
问题描述
我正在使用 apache-camel-quarkus 从 RabbitMq 队列中读取数据,并且在生产中一切正常。但是当我在开发模式下运行它并尝试执行使用 RabbitMq 的用例时,我在反序列化队列中的消息时遇到异常
java.lang.ClassNotFoundException: messaging.model.ReportAvailableMessage
at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:429)
at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:405)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:398)
at java.base/java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:756)
at java.base/java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1995)
at java.base/java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1862)
at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2169)
at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1679)
at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:493)
at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:451)
at org.apache.camel.component.rabbitmq.RabbitMQMessageConverter.deserializeBody(RabbitMQMessageConverter.java:354)
at org.apache.camel.component.rabbitmq.RabbitMQMessageConverter.populateMessageBody(RabbitMQMessageConverter.java:344)
at org.apache.camel.component.rabbitmq.RabbitMQMessageConverter.populateRabbitExchange(RabbitMQMessageConverter.java:289)
它与开发模式下的类路径有些相关。集成测试也发生了同样的情况,我不得不使用这个属性来修复它
quarkus.test.flat-class-path=true
我进行了一些搜索并尝试使用quarkus.class-loading.parent-first-artifacts
我的应用程序的工件 ID,但它也不起作用。
有谁知道我该如何解决这个问题?谢谢
环境:Quarkus 版本:2.4.0.Final,Camel:2.2.0
解决方案
推荐阅读
- javascript - Karma Istanbul 仅生成一个文件夹的覆盖范围
- google-app-engine - 在 App Engine/meteor-files 上流星多个实例
- c# - 在 WPF Prism 应用程序中无法识别 onActivated 事件处理程序
- javascript - 在打字稿中,我们可以将两个枚举转换为一个对象键值吗
- r - 为什么 R 中的 Order() 不返回正确的顺序?
- scala - Spark Scala - 将字符串转换为 BigDecimal (11,2)
- function - Subtract one correct point for every 3 wrong point in kotlin
- apollo-client - 有没有办法将 InMemoryCache 内容保留在客户端上以供下一个会话使用
- javascript - 我无法从函数 VUE JS 内部访问变量
- reactjs - 为什么在某些情况下在 React 中我们使用圆括号而不是花括号