javamysqljdbcelasticsearchelasticsearch-jdbc-river

[WARN ][plugins] plugin jdbc- river, failed to invoke custom onModule method


I have installed the Elastic search version 1.7.1. It was working fine. I have installed the JDBC driver also. Check my plugins folder below

Directory of E:\Xampp\htdocs\my-elastic\elasticsearch-1.7.1\plugins\river-jdbc

09-09-2015  19:19            66,891 elasticsearch-river-jdbc-2.3.1.jar
27-07-2015  15:55           959,984 mysql-connector-java-5.1.33.jar 

So i have the connector files are in plugins folder. When i start the elasticsearch it shows warning erros as below.

[2015-09-10 14:29:48,728][WARN ][plugins                  ] [Rogue] plugin jdbc-
river, failed to invoke custom onModule method
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.elasticsearch.plugins.PluginsService.processModule(PluginsService
.java:200)
        at org.elasticsearch.plugins.PluginsModule.processModule(PluginsModule.j
ava:61)
        at org.elasticsearch.common.inject.Modules.processModules(Modules.java:6
4)
        at org.elasticsearch.common.inject.ModulesBuilder.createInjector(Modules
Builder.java:58)
        at org.elasticsearch.node.internal.InternalNode.<init>(InternalNode.java
:210)
        at org.elasticsearch.node.NodeBuilder.build(NodeBuilder.java:159)
        at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:77)
        at org.elasticsearch.bootstrap.Bootstrap.main(Bootstrap.java:245)
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:32)

Caused by: java.lang.VerifyError: class org.xbib.elasticsearch.rest.action.RestJ
DBCRiverInduceAction overrides final method handleRequest.(Lorg/elasticsearch/re
st/RestRequest;Lorg/elasticsearch/rest/RestChannel;)V
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at org.xbib.elasticsearch.plugin.river.jdbc.JDBCRiverPlugin.onModule(JDB
CRiverPlugin.java:53)
        ... 13 more

How can i fix the issue. Please help to fix the issue.

Thanks in Advance


Solution

  • According to the JDBC plugin's documentation, the version that you should use with ES 1.7 is the version 1.7.0.1.

    So try again to install your plugin with the 1.7.0.1 package at http://xbib.org/repository/org/xbib/elasticsearch/importer/elasticsearch-jdbc/1.7.0.1/elasticsearch-jdbc-1.7.0.1-dist.zip

    And then follow these installations steps

    UPDATE

    Actually, I didn't get you were trying to install a river plugin. Since rivers have been deprecated, the JDBC importer does not provide a river plugin anymore since version 1.5. If you absolutely want to use the river plugin, you need at most ES 1.5 (i.e. it won't work with ES 1.6+) and the JDBC plugin v1.5.

    If you decide to go down that path, you can install the JDBC river plugin with

    ./bin/plugin --install jdbc --url http://xbib.org/repository/org/xbib/elasticsearch/plugin/elasticsearch-river-jdbc/1.5.0.4/elasticsearch-river-jdbc-1.5.0.4.zip
    

    In the case you decide to stay with ES 1.7, then you can run the JDBC importer as a standalone tool by running the appropriate script in the bin folder