通过设置弹性5.5.1配置设置并创建传输客户端bean来配置Spring bean

时间:2017-08-16 08:57:51

标签: spring elasticsearch elasticsearch-5 elasticsearch-java-api

我正在尝试使用ElasticSearch Java API 5.5.1并在尝试为PreBuiltTransportClient创建一个bean(ES 2.3中的TransportClient)时,我面临以下问题。

在ServletContext资源[/WEB-INF/applicationContext.xml]中定义名称为'preBuildTransportClient'的bean时出错:通过构造函数参数0表示的不满意依赖:无法转换类型[org.elasticsearch.common.settings]的参数值。将$ Builder设置为必需类型[org.elasticsearch.common.settings.Settings]:无法将[org.elasticsearch.common.settings.Settings $ Builder]类型的值转换为所需类型[org.elasticsearch.common.settings。 ]设置;嵌套异常是java.lang.IllegalStateException:无法将类型[org.elasticsearch.common.settings.Settings $ Builder]的值转换为必需的类型[org.elasticsearch.common.settings.Settings]:找不到匹配的编辑器或转换策略< / p>

 <bean id="settingsBean" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
    <property name="targetObject">
        <bean id="builderObj" class="org.elasticsearch.common.settings.Settings" factory-method="builder" />
    </property>
    <property name="targetMethod" value="put" />
    <property name="arguments">
        <map>

            <entry key="cluster.name">
                <value>mycluster</value>
            </entry>

        </map>
    </property>
</bean>

<bean id="transportClient" class="org.elasticsearch.transport.client.PreBuiltTransportClient">
     <constructor-arg name="settings" ref="esSettingsBuilderStep2" />
     <constructor-arg name="plugins">
        <null />
</constructor-arg>
</bean>

是否有为PreBuiltTransportClient创建bean的建议?

1 个答案:

答案 0 :(得分:0)

创建了一个类,并将其用作具有适当参数的bean。