【问题标题】:org.apache.camel.NoSuchLanguageException: No language could be found for: simpleorg.apache.camel.NoSuchLanguageException:找不到语言:简单
【发布时间】:2021-07-15 02:49:23
【问题描述】:

我有以下例外: org.apache.camel.NoSuchLanguageException: No language could be found for: simple 打电话时DefaultCamelContext.start();

在我的路线中,我需要使用 .recipientList(exchangeProperty("name")),这就是为什么我从 Camel 2.12.0 迁移到 Camel 3.4.0 而现在我不能甚至启动上下文。

pom.xml相关依赖:

  <dependencies>
      <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-api</artifactId>
        <version>3.4.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-base</artifactId>
        <version>3.4.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-language</artifactId>
        <version>3.4.0</version>
    </dependency>    
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-jetty</artifactId>
        <version>3.4.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-http</artifactId>
        <version>3.4.0</version>
    </dependency>   
  </dependencies>

我添加了骆驼语言以防万一。

我了解模块系统,我已经尝试过教程 (https://camel.apache.org/releases/release-3.4.0/) 中的 dependencyManagement 块并得到了同样的错误。所以我决定不包括不必要的罐子。

我在 Eclipse IDE(版本 2021-03) 中进行开发。 Maven 自动选择了 J2SE-1.5 系统库(但是我的默认 JRE 是 1.8),我无法更改它:更新 maven 项目后它又回到了 1.5。 p>

这是带有一些 DEBUG 消息的完整 stackTrace:

[                          main] ResolverHelper                 DEBUG Lookup Language with name simple in registry. Found: null
[                          main] ResolverHelper                 DEBUG Lookup Language with name simple-language in registry. Found: null
org.apache.camel.NoSuchLanguageException: No language could be found for: simple
    at org.apache.camel.impl.engine.DefaultLanguageResolver.noSpecificLanguageFound(DefaultLanguageResolver.java:92)
    at org.apache.camel.impl.engine.DefaultLanguageResolver.resolveLanguage(DefaultLanguageResolver.java:68)
    at org.apache.camel.impl.engine.AbstractCamelContext.resolveLanguage(AbstractCamelContext.java:1730)
    at org.apache.camel.impl.engine.AbstractCamelContext.doStartStandardServices(AbstractCamelContext.java:3205)
    at org.apache.camel.impl.DefaultCamelContext.doStartStandardServices(DefaultCamelContext.java:297)
    at org.apache.camel.impl.engine.AbstractCamelContext.forceLazyInitialization(AbstractCamelContext.java:3148)
    at org.apache.camel.impl.engine.AbstractCamelContext.doInit(AbstractCamelContext.java:2550)
    at org.apache.camel.support.service.BaseService.init(BaseService.java:83)
    at org.apache.camel.impl.engine.AbstractCamelContext.init(AbstractCamelContext.java:2435)
    at org.apache.camel.support.service.BaseService.start(BaseService.java:111)
    at org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2452)
    at my.camel.MainApp.main(MainApp.java:16)

任何帮助将不胜感激:)

【问题讨论】:

    标签: java eclipse maven apache-camel


    【解决方案1】:

    我不认为 camel-core 是您的依赖项之一,如您提供的 URL 中所述。

    根据documentation on expression languagesSimple 语言作为camel-core-languages 工件的一部分提供,它是camel-core 的编译依赖项。

    我建议再次尝试使用 Camel POM 进行依赖管理,确保明确包含 camel-core 工件作为依赖。如果单独使用camel-core 不能解决您的问题,请考虑添加camel-core-languages

    <dependencyManagement>
      <dependencies>
        <dependency>
          <groupId>org.apache.camel</groupId>
          <artifactId>camel-bom</artifactId>
          <version>3.4.0</version>
          <type>pom</type>
          <scope>import</scope>
        </dependency>
      </dependencies>
    </dependencyManagement>
    
    <dependencies>
      <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-core</artifactId>
      </dependency>
      <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-core-languages</artifactId>
      </dependency>
    </dependencies>
    

    【讨论】:

    • 关于你的 Maven 默认 Java 版本问题,请参见:stackoverflow.com/q/28509928/9260161
    • 谢谢@philip,camel-core-languages 依赖起作用了!并感谢 Maven 更新链接 :)
    • 欢迎您@OlgaVashchenko!我很高兴这对你有用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-01
    • 2018-05-23
    • 2016-02-12
    • 1970-01-01
    • 2017-07-12
    • 2021-12-16
    相关资源
    最近更新 更多