更正应用程序的类路径,使其包含一个兼容的 org.apache.camel.impl.converter.DefaultTypeContent 版本
Posted
技术标签:
【中文标题】更正应用程序的类路径,使其包含一个兼容的 org.apache.camel.impl.converter.DefaultTypeContent 版本【英文标题】:Correct the classpath of your application so that it contains a single, compatible version of org.apache.camel.impl.converter.DefaultTypeContent 【发布时间】:2022-01-01 16:17:24 【问题描述】:在我的 spring boot 应用程序上设置 pom.xml 时,我在 eclipse-workspace 的控制台上遇到了这个错误。我目前正在使用 spring-boot 版本 2.5.6
行动:
更正应用程序的类路径,使其包含一个兼容的 org.apache.camel.impl.converter.DefaultTypeConverter 版本
下面的代码是我添加的依赖。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.springboot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.springboot</groupId>
<artifactId>camel-spring-boot-starter</artifactId>
<version>3.13.0</version>
</dependency>
<dependency>
<groupId>org-apache.camel</groupId>
<artifactId>camel-jackson-starter</artifactId>
<version>$camel.version</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-swagger-java-starter</artifactId>
<version>$camel.version</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-servlet</artifactId>
<version>$camel.version</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>java.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>org.springframework.plugin</groupId>
<artifactId>spring-plugin-core</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.200</version>
</dependency>
<dependencies>
只是不知道我的一些依赖有没有不兼容的地方。
提前感谢您的帮助。
编辑: 其他日志
Description
An attempt was made to call a method that does not exist. The attempt was made from the following location:
org.apache.camel.impl.engine.SimpleCamelContext.createTypeConverter(SimpleCamelContext.java:138)
referring to this code
135: protected TypeConverter createTypeConverter()
136: return new DefaultTypeConverter(
137: getCamelContextReference(), getPackageScanClassResolver(), getInjector(),
138: isLoadTypeConverter());
The following method did not exist:
org.apache.camel.impl.converter.DefaultTypeConverter. <init>(Lorg/apache/camel/CamelContext;Lorg/apache/camel/spi/PackageScanClassResolver;Lorg/apache/camel/spi/Injector:V
The method’s class, org.apache.camel.impl.converter.DefaultTypeConverter, is available from the following locations:
jar:file:/apache/camel/camel-base/3.0.0-M4/camel-base-3.0.0-M4.jar!/org/apache/camel/impl/converter/DefaultTypeConverter.class
The class hierarchy was loaded from the following locations:
org.apache.camel.impl.converter.DefaultTypeConverter: camel/camel-base/3.0.0-M4/camel-base-3.0.0-M4.jar
org.apache.camel.impl.concerter.BaseTypeConverterRegistry file: camel/camel-base/3.0.0-M4/camel-base-3.0.0-M4.jar
org.apache.camel.support.service.ServiceSupport: file:/camel/camel-api/3.13.0/camel-api-3.13.0.jar
org.apache.camel.support.service.BaseService: file:/camel/camel-api/3.13.0/camel-api-3.13.0.jar
【问题讨论】:
你能分享完整的错误信息吗?它应该提供有关尝试调用DefaultTypeConverter
的代码以及DefaultTypeConverter
可用的类路径上的位置的更多信息。
你好,我已经添加了额外的日志
【参考方案1】:
您正在混合不同版本的 Camel 罐子。您有一些版本为3.13.0
,另一些版本为3.0.0-M4
,它们彼此不兼容。
你还没有分享你所有的pom.xml
,所以我不能确定,但我猜camel.version
属性设置为3.0.0.M4
,这与你对 Camel 启动器的依赖不相符其中版本为3.13.0
:
<dependency>
<groupId>org.apache.camel.springboot</groupId>
<artifactId>camel-spring-boot-starter</artifactId>
<version>3.13.0</version>
</dependency>
您应该更新您的 pom,以便为所有 Camel 模块使用一致的版本。您可以通过在命令行上运行mvn dependency:list
来检查它们的版本。
【讨论】:
以上是关于更正应用程序的类路径,使其包含一个兼容的 org.apache.camel.impl.converter.DefaultTypeContent 版本的主要内容,如果未能解决你的问题,请参考以下文章