java - org.apache.camel.NoSuchLanguageException : No language could be found for: simple

标签 java eclipse maven apache-camel

我有以下异常(exception):org.apache.camel.NoSuchLanguageException: No language could be found for: simple调用DefaultCamelContext.start();
在我的 route ,我需要使用 .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>
我添加了 Camel 语言以防万一。
我知道模块系统,我已经尝试过教程中的dependencyManagement block (https://camel.apache.org/releases/release-3.4.0/)并得到了同样的错误。所以我决定不包括不必要的 jar 。
我在 开发Eclipse IDE(版本 2021-03) . Maven 自动选择 J2SE-1.5 系统库(但是我的 默认 JRE 是 1.8 )并且我无法更改它:更新 maven 项目后它又回到了 1.5。
这是带有一些 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)
任何帮助将不胜感激 :)

最佳答案

我没看到 camel-core作为您的依赖项之一,如您提供的 URL 中所述。
根据documentation on expression languages , Simple语言作为 camel-core-languages 的一部分提供artifact,它是 camel-core 的编译依赖项.
我建议再次尝试使用 Camel POM 进行依赖管理,确保明确包含 camel-core Artifact 作为依赖项。如果 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>

关于java - org.apache.camel.NoSuchLanguageException : No language could be found for: simple,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67186854/

相关文章:

maven - eclipse导入的maven项目无法解析其他导入maven项目中的符号

maven - 自动将 JavaDoc 发布为远程机器上的功能网站

java - 在 .NET 中使用 Java JAR 文件

java - 比较 Flink Table API 与 join table 和 DataStream.join()

java - Nexus 2.10 断管 IOException

java - 我如何知道哪个项目正在从 Maven 请求特定的 jar

maven - 使用 maven scm 插件

java - 如何创造倾城历史

用于测量带宽、延迟、跳数的 Java 库?

java - Android 版本 2.2 的错误对话框