Es este error en Mongo conductor o estoy haciendo algo incorrecto?

Llegar por debajo de excepción:

Caused by: org.springframework.beans.ConversionNotSupportedException: Failed to convert property value of type 'java.lang.String' to required type 'com.mongodb.ServerAddress[]' for property 'replicaSetSeeds'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [com.mongodb.ServerAddress] for property 'replicaSetSeeds[0]': no matching editors or conversion strategy found
at org.springframework.beans.BeanWrapperImpl.convertIfNecessary(BeanWrapperImpl.java:465)
at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:496)
at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:490)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.convertForProperty(AbstractAutowireCapableBeanFactory.java:1437)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1396)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1132)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
... 14 more
Caused by: java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [com.mongodb.ServerAddress] for property 'replicaSetSeeds[0]': no matching editors or conversion strategy found
at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:264)
at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:128)
at org.springframework.beans.TypeConverterDelegate.convertToTypedArray(TypeConverterDelegate.java:487)
at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:195)
at org.springframework.beans.BeanWrapperImpl.convertIfNecessary(BeanWrapperImpl.java:450)
... 20 more

A continuación está mi primavera configuración

 <bean id="defaultMongoTypeMapper"  class="org.springframework.data.mongodb.core.convert.DefaultMongoTypeMapper">
<constructor-arg name="typeKey"><null/></constructor-arg>
</bean>
<bean id="mappingMongoConverter" class="org.springframework.data.mongodb.core.convert.MappingMongoConverter">
<constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
<constructor-arg name="mappingContext" ref="mappingContext" />
<property name="typeMapper" ref="defaultMongoTypeMapper" />
</bean>
<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
<constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
<constructor-arg name="mongoConverter" ref="mappingMongoConverter" />   
<property name="writeConcern">
<util:constant static-field="com.mongodb.WriteConcern.SAFE" ></util:constant>
</property>
</bean>

frascos/Controladores utilizados:

spring-beans-3.2.0.RELEASE.jar
mongo-java-driver-2.11.3.jar

Se fija usando el siguiente código:

<bean id="mongoClient" class="com.mongodb.MongoClient">
<constructor-arg>
<list>
<value>161.141.16.100:27017</value>
<value>161.141.16.101:27017</value>
</list>
</constructor-arg>
</bean>
<mongo:db-factory id="mongoDbFactory" dbname="test" mongo-ref="mongoClient"/>
  • Probablemente. Por favor, mostrar bean definición de mongoDbFactory
  • <mongo:db-fábrica id=»mongoDbFactory» dbname=»prueba»/>
  • ¿Dónde puede configurar repl establecido en primavera? Por favor, mostrar. Si utiliza mongo espacio de nombres es algo así como mongo replica-set=... de soja o de tipo Mongo o MongoClient
  • <mongo:mongo id=»replicaSetMongo» conjunto de réplicas=»161.141.16.100:27017,161.141.16.101:27017″/>
InformationsquelleAutor user2872219 | 2013-10-17

2 Comentarios

  1. 2

    Probablemente estás usando

    <property name="[variable]" ref="[bean]"/>

    lugar de

    <property name="[variable]" value="[bean]"/>

    ref referencias a un resorte, el frijol, el valor se traduce en cadena.

    • excelente, gracias!
  2. 0

    por valor,queremos decir que lo que queremos inyectar es primitivas o de Cadena,mientras que con la ref,lo que queremos inyectar se auto-define los objetos.

    si está utilizando primitivas o de la Cadena es mejor utilizar

    <property name="Variable value" ref="BeanName" />

    otros-caso de uso

    <property name="Variable value" value="BeanName" />

Dejar respuesta

Please enter your comment!
Please enter your name here