You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache Camel从2.x升级至3.2.0遇ClassNotFoundException及版本兼容问题

Apache Camel升级问题排查与版本兼容解答

问题背景

当前项目基于Java 8、Spring Boot 2.7.12、Apache Camel 2.25.4构建,计划将Camel升级至支持Java 8的3.2.X版本。升级camel-core到3.2.0后,启动应用抛出java.lang.ClassNotFoundException: org.apache.camel.spi.ReloadStrategy错误。同时已知Camel 3.4.X起不再支持Java 8,但无法找到Camel 3.4.X对应的Spring Boot兼容版本,需确认是否需要升级Spring Boot、适配版本及查询途径。

关联RouteBuilder配置代码

package accountService;

import java.net.ConnectException;
import java.util.concurrent.RejectedExecutionException;

import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
import org.apache.camel.ExchangeTimedOutException;
import org.apache.camel.Processor;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.consul.ConsulConfiguration;
import org.apache.camel.impl.DefaultCamelContext;
import org.apache.camel.impl.DefaultModel;
import org.apache.camel.model.cloud.ConsulServiceCallServiceDiscoveryConfiguration;
import org.apache.camel.model.cloud.ServiceCallConfigurationDefinition;

import org.apache.camel.spring.boot.cloud.CamelCloudConfigurationProperties.ServiceDiscovery;
import org.apache.camel.spring.boot.cloud.CamelCloudConfigurationProperties.ServiceDiscoveryConfiguration;
import org.apache.kafka.common.errors.TimeoutException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import errorhandlers.CustomException;

@Component
public class BuilderService extends RouteBuilder{
    
    
    @Value("${currentEnv.port}")
    int port;
    
    @Value("${currentEnv.host}")
    String host;
    
    @Value("${consul.serviceRegUrl}")
    String consulRegUrl;
    
    @Value("${consul.serviceDeregUrl}")
    String consulDeRegUrl;
    
    @Value("${kafka.kafkaReq}")
    String kafkaReq;
    
    @Value("${currentEnv.minThread}")
    String minThread;
    
    @Value("${currentEnv.maxThread}")
    String maxThread;
    
    @Value("${consul.url}")
    String url;

    @Autowired
    CamelContext context;

    @Override
    public void configure() throws Exception {
    
        ServiceCallConfigurationDefinition sep = new ServiceCallConfigurationDefinition();
        ConsulServiceCallServiceDiscoveryConfiguration con = sep.consulServiceDiscovery();
        con.setUrl(url);
        sep.setComponent("jetty");
        
    camelContext.setServiceCallConfiguration(sep);
    
        restConfiguration().component("jetty").host(host).port(port).endpointProperty("minThreads", minThread)
        .endpointProperty("maxThreads", maxThread).enableCORS(true).endpointProperty("bridgeEndpoint", "true");
     
        from("direct:start").routeId("SERVICE")
          .setHeader(Exchange.HTTP_METHOD, constant("PUT"))
          .setHeader(Exchange.CONTENT_TYPE, constant("application/json"))
          .to(consulRegUrl);
        //from("direct:stop").shutdownRunningTask(ShutdownRunningTask.CompleteAllTasks)
        from("direct:stop").setHeader(Exchange.HTTP_METHOD, constant("PUT"))
          .toD(consulDeRegUrl+"/${header.id}");
        
        
    }

}

问题解决与说明

1. org.apache.camel.spi.ReloadStrategy类找不到问题

  • 原因:Camel 3.x重构了SPI模块,ReloadStrategy从camel-core迁移至camel-base模块,3.2版本中该类不再包含在camel-core依赖内。
  • 解决:在项目依赖中添加camel-base(版本3.2.0),以Maven为例:
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-base</artifactId>
    <version>3.2.0</version>
</dependency>
  • 额外检查:确保所有Camel相关依赖版本统一为3.2.0,避免混合2.x与3.x版本引发依赖冲突。

2. Spring Boot与Camel版本兼容问题

  • 是否需要升级Spring Boot?
    无需强制升级。Camel 3.2.x官方兼容Spring Boot 2.3.x至2.7.x版本,当前使用的Spring Boot 2.7.12在兼容范围内,可直接配合Camel 3.2.x使用。
  • 关于Camel 3.4.x的说明:
    Camel 3.4.x不再支持Java 8,因此当前Java 8环境无法升级至该版本及以上,无需考虑此路径。若后续升级Java版本,Camel 3.4.x兼容Spring Boot 2.3.x至2.4.x版本。
  • 版本兼容查询途径:
    查看Camel官方文档的「Spring Boot Integration」章节,其中包含明确的版本对应表;或查看Camel Spring Boot Starter的pom.xml文件,里面标注了兼容的Spring Boot版本范围。

内容的提问来源于stack exchange,提问作者VENUGOPAL M G

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 12:20:58