我如何在Apache骆驼中使用Elasticsearch 2.2.1

穆罕默德·阿里·阿比迪(Mohamed Ali Abidi)

我正在尝试开发一个Apache Camel应用程序,该应用程序使用来自Amazon SQS Queue的消息,然后将其发送到elasticsearch。这是我的pom.xml文件:

   <project xmlns="http://maven.apache.org/POM/4.0.0"     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <groupId>com.nsm.sam</groupId>
     <artifactId>CEP_CAMEL</artifactId>
     <version>0.0.1</version>
     <dependencies>
           <dependency>
               <groupId>org.apache.camel</groupId>
               <artifactId>camel-core</artifactId>
               <version>2.16.3</version>
           </dependency>
           <dependency>
               <groupId>org.slf4j</groupId>
               <artifactId>slf4j-simple</artifactId>
               <version>1.7.5</version>
           </dependency>
           <dependency>
              <groupId>org.apache.camel</groupId>
              <artifactId>camel-aws</artifactId>
<!--            <version>2.8.0</version> -->
              <version>2.16.3</version>
          </dependency>
            <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-google-mail</artifactId>
            <version>2.16.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-mail</artifactId>
            <version>2.16.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-gae</artifactId>
            <version>2.16.3</version>
        </dependency>
        <dependency>
          <groupId>org.apache.camel</groupId>
          <artifactId>camel-jsonpath</artifactId>
          <version>2.16.3</version>
        </dependency>
        <dependency>
        <groupId>org.apache.camel</groupId>
            <artifactId>camel-elasticsearch</artifactId>
            <version>2.16.3</version>
        </dependency>

        <dependency>
            <groupId>org.elasticsearch</groupId>
            <artifactId>elasticsearch</artifactId>
            <version>2.2.1</version>
        </dependency>

       </dependencies>
   </project>

和我的主要应用程序:

package com.nsm.sam.cep;

  import java.util.Scanner;

  import org.apache.camel.CamelContext;
  import org.apache.camel.builder.RouteBuilder;
  import org.apache.camel.impl.DefaultCamelContext;
  import org.apache.camel.impl.SimpleRegistry;

  import com.amazonaws.ClientConfiguration;
  import com.amazonaws.auth.AWSCredentials;
  import com.amazonaws.auth.BasicAWSCredentials;
  import com.amazonaws.services.sqs.AmazonSQSClient;
  import com.amazonaws.util.json.JSONException;

  public class CEPBroker {
    public static void main(String args[]) throws Exception {
        final SimpleRegistry registry = new SimpleRegistry(); 
        AWSCredentials awsCredentials = new   BasicAWSCredentials("nnnnnnnnnnnnnnmy acces key", "xxxxxxxxxxxxxx my   secret key");
        ClientConfiguration clientConfiguration = new   ClientConfiguration(); 

        final AmazonSQSClient client = new AmazonSQSClient(awsCredentials,   clientConfiguration);
        client.setEndpoint("url .....");
        registry.put("amazonclient" , client); 
        final CamelContext context = new DefaultCamelContext(registry);
        context.addRoutes(new RouteBuilder() {
            public void configure() throws JSONException {
                from("aws-sqs://SAM_SQS_test?amazonSQSClient=#amazonclient")
                //.resequence().body()
                //.process(new MesssageProcessor());
                .process(new TypeProcessor())
                .to("elasticsearch://elasticsearch?operation=INDEX&indexName=sam_monitoring&indexType=login&port=9300&ip=127.0.0.1");

            }
        });
        context.start();
        System.out.println("Press enter to stop CAMEL ...");
        Scanner keyboard = new Scanner(System.in);
        keyboard.nextLine();
        context.stop();
    }
  }

我安装的Elasticsearch版本是2.2.1

当我用elasticsearch 1.7.5尝试时,它正在工作,但使用2.2.1

我有这个例外

[main] INFO org.apache.camel.impl.DefaultCamelContext - Apache Camel     2.16.3 (CamelContext: camel-1) is starting
  [main] INFO org.apache.camel.management.ManagedManagementStrategy - JMX is enabled
  [main] INFO org.apache.camel.impl.converter.DefaultTypeConverter - Loaded 198 type converters
  [main] INFO org.apache.camel.impl.DefaultRuntimeEndpointRegistry -   Runtime endpoint registry is in extended mode gathering usage statistics   of all incoming and outgoing endpoints (cache limit: 1000)
  Exception in thread "main" java.lang.NoClassDefFoundError:   org/elasticsearch/action/support/replication/ReplicationType
    at org.apache.camel.component.elasticsearch.ElasticsearchConstants.  <clinit>(ElasticsearchConstants.java:46)
    at   org.apache.camel.component.elasticsearch.ElasticsearchConfiguration.<init>  (ElasticsearchConfiguration.java:43)
    at   org.apache.camel.component.elasticsearch.ElasticsearchComponent.createEndp  oint(ElasticsearchComponent.java:43)
    at   org.apache.camel.impl.DefaultComponent.createEndpoint(DefaultComponent.jav  a:114)
      at   org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.  java:567)
    at   org.apache.camel.util.CamelContextHelper.getMandatoryEndpoint(CamelContext  Helper.java:79)
    at   org.apache.camel.model.RouteDefinition.resolveEndpoint(RouteDefinition.jav  a:211)
    at   org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteCont  ext.java:107)
    at org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteCont  ext.java:113)
    at org.apache.camel.model.SendDefinition.resolveEndpoint(SendDefinition.java:62)
    at org.apache.camel.model.SendDefinition.createProcessor(SendDefinition.java:56)
    at org.apache.camel.model.ProcessorDefinition.makeProcessorImpl(ProcessorDefinition.java:535)
    at org.apache.camel.model.ProcessorDefinition.makeProcessor(ProcessorDefinition.java:496)
    at org.apache.camel.model.ProcessorDefinition.addRoutes(ProcessorDefinition.java:220)
    at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:1069)
    at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:196)
    at org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:944)
    at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:3260)
    at org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:2983)
    at org.apache.camel.impl.DefaultCamelContext.access$000(DefaultCamelContext.java:175)
    at org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:2814)
    at org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:2810)
    at   org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:2833)
    at   org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java  :2810)
    at  rg.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
    at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:2779)
    at com.nsm.sam.cep.CEPBroker.main(CEPBroker.java:43)
  Caused by: java.lang.ClassNotFoundException:   org.elasticsearch.action.support.replication.ReplicationType
      at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 27 more
詹姆斯·伯顿

我自己碰到了这个确切的问题。不幸的是,骆驼2.16.x不支持> = 2.0的elasticsearch

但是,我可以确认骆驼2.17.0确实可以与Elasticsearch 2.3.1一起使用。

骆驼发行说明表明,骆驼2.17.0现在支持elasticsearch 2.0。

Elasticsearch从1.7.3到2.0.0

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我应该如何理解“>输出文件2>&1”和“ 2>&1>输出文件”?

来自分类Dev

vector <int> + = 1,1,2,2,2,3,4,5,6如何; 可能的?

来自分类Dev

如何在pg_query_params调用中使用ST_GeomFromText('Point($ 1 $ 2)',4326)

来自分类Dev

如何在PHP中使用DOM解析器为h1,h2等创建<div>?

来自分类Dev

如何在Python argparse中使用`--foo 1 --foo 2`样式参数?

来自分类Dev

如何在PHP中将1,2,3转换为'1','2','3'

来自分类Dev

yii2如何在网格视图中使1:1:1关系可排序和可搜索

来自分类Dev

如何在Angular 2组件函数中使用Angular 1指令变量

来自分类Dev

如何同时使用1,2和2,1

来自分类Dev

我应该如何在TypeScript 2中使用@types

来自分类Dev

如何使用嵌套的for循环返回字符串“ 1 + 2 + 3 + .. 1 + 2 + 3 + .. 1 + 2 + 3 + ..”?

来自分类Dev

如何在Ruby中将“ [1,2,3]”转换为[1,2,3]

来自分类Dev

如何在R中将数据1 1 2 2 3 3拆分为1 2 3 1 2 3?

来自分类Dev

如何在SAS中比较均值(µ1 + µ2 + µ3)/ 3 =(µ3 + µ4)/ 2:使用'ESTIMATE'或'CONTRAST'?

来自分类Dev

1 == 2 == 2如何评估?

来自分类Dev

如何在1个select语句中使用2个和?

来自分类Dev

如何在Java中使用“ PBKDF2WithHmacSHA1”输入密钥

来自分类Dev

如何在python中将['2 1','2 1']转换为[['1','2'],['2','1']]?

来自分类Dev

我如何在Doctrine 2 ODM中使用mongoDB在zf2中保存数据?

来自分类Dev

如何在pg_query_params调用中使用ST_GeomFromText('Point($ 1 $ 2)',4326)

来自分类Dev

如何在for循环中使用$ 1 $ 2 ...之类的参数?

来自分类Dev

如何在apache2中使用Python?

来自分类Dev

如果我知道1 + 2 + 3 + .. + n = n *(n + 1)/ 2的结果,如何得到n?

来自分类Dev

如何在 sql 中将 1row 2 字段连接为 2 row 1 字段?

来自分类Dev

如何在 Angular 2 中使用 Angular 1.x 的过滤器?

来自分类Dev

在 r 中使用 for 循环分配 a1<-1, a2<-2, a3<-

来自分类Dev

如何在 xilinx verilog 中使用 M2_1 MUX 或 FD 触发器等默认模块?

来自分类Dev

我如何在 R 中使时间序列重新编码变量。如果价格达到“目标回报”1,否则为 2

来自分类Dev

如何在调试中使用 2 种语言而在生产中只使用 1 种语言?

Related 相关文章

  1. 1

    我应该如何理解“>输出文件2>&1”和“ 2>&1>输出文件”?

  2. 2

    vector <int> + = 1,1,2,2,2,3,4,5,6如何; 可能的?

  3. 3

    如何在pg_query_params调用中使用ST_GeomFromText('Point($ 1 $ 2)',4326)

  4. 4

    如何在PHP中使用DOM解析器为h1,h2等创建<div>?

  5. 5

    如何在Python argparse中使用`--foo 1 --foo 2`样式参数?

  6. 6

    如何在PHP中将1,2,3转换为'1','2','3'

  7. 7

    yii2如何在网格视图中使1:1:1关系可排序和可搜索

  8. 8

    如何在Angular 2组件函数中使用Angular 1指令变量

  9. 9

    如何同时使用1,2和2,1

  10. 10

    我应该如何在TypeScript 2中使用@types

  11. 11

    如何使用嵌套的for循环返回字符串“ 1 + 2 + 3 + .. 1 + 2 + 3 + .. 1 + 2 + 3 + ..”?

  12. 12

    如何在Ruby中将“ [1,2,3]”转换为[1,2,3]

  13. 13

    如何在R中将数据1 1 2 2 3 3拆分为1 2 3 1 2 3?

  14. 14

    如何在SAS中比较均值(µ1 + µ2 + µ3)/ 3 =(µ3 + µ4)/ 2:使用'ESTIMATE'或'CONTRAST'?

  15. 15

    1 == 2 == 2如何评估?

  16. 16

    如何在1个select语句中使用2个和?

  17. 17

    如何在Java中使用“ PBKDF2WithHmacSHA1”输入密钥

  18. 18

    如何在python中将['2 1','2 1']转换为[['1','2'],['2','1']]?

  19. 19

    我如何在Doctrine 2 ODM中使用mongoDB在zf2中保存数据?

  20. 20

    如何在pg_query_params调用中使用ST_GeomFromText('Point($ 1 $ 2)',4326)

  21. 21

    如何在for循环中使用$ 1 $ 2 ...之类的参数?

  22. 22

    如何在apache2中使用Python?

  23. 23

    如果我知道1 + 2 + 3 + .. + n = n *(n + 1)/ 2的结果,如何得到n?

  24. 24

    如何在 sql 中将 1row 2 字段连接为 2 row 1 字段?

  25. 25

    如何在 Angular 2 中使用 Angular 1.x 的过滤器?

  26. 26

    在 r 中使用 for 循环分配 a1<-1, a2<-2, a3<-

  27. 27

    如何在 xilinx verilog 中使用 M2_1 MUX 或 FD 触发器等默认模块?

  28. 28

    我如何在 R 中使时间序列重新编码变量。如果价格达到“目标回报”1,否则为 2

  29. 29

    如何在调试中使用 2 种语言而在生产中只使用 1 种语言?

热门标签

归档