J'essaie d'utiliser spring-data-solr pour accéder à mon instance Solr via mon application de démarrage Spring. J'ai la classe de haricots suivants:Aucun convertisseur trouvé capable de convertir du type [java.lang.String] au type [org.springframework.data.solr.core.geo.Point]
@SolrDocument(solrCoreName = "associations")
public class Association implements PlusimpleEntityI {
@Id
@Indexed
private String id;
@Indexed
private String name;
@Indexed
private Point location;
@Indexed
private String description;
@Indexed
private Set<String> tags;
@Indexed
private Set<String> topics;
@Indexed
private Set<String> professionals;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Point getLocation() {
return location;
}
public void setLocation(Point location) {
this.location = location;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public Set<String> getTags() {
return tags;
}
public void setTags(Set<String> tags) {
this.tags = tags;
}
public Set<String> getTopics() {
return topics;
}
public void setTopics(Set<String> topics) {
this.topics = topics;
}
public Set<String> getProfessionals() {
return professionals;
}
public void setProfessionals(Set<String> professionals) {
this.professionals = professionals;
}
}
J'ai mis en place le dépôt suivant afin d'accéder aux informations correspondantes:
public interface AssociationsRepository extends SolrCrudRepository<Association, String> {
}
J'ai créé une classe de configuration qui ressemble à la suivante:
@Configuration
@EnableSolrRepositories(basePackages = {"com.package.repositories"}, multicoreSupport = true)
public class SolrRepositoryConfig {
@Value("${solr.url}")
private String solrHost;
@Bean
public SolrConverter solrConverter() {
MappingSolrConverter solrConverter = new MappingSolrConverter(new SimpleSolrMappingContext());
solrConverter.setCustomConversions(new CustomConversions(null));
return solrConverter;
}
@Bean
public SolrClientFactory solrClientFactory() throws Exception {
return new MulticoreSolrClientFactory(solrClient());
}
@Bean
public SolrClient solrClient() throws Exception {
return new HttpSolrClient.Builder(solrHost).build();
}
@Bean
public SolrOperations associationsTemplate() throws Exception {
SolrTemplate solrTemplate = new SolrTemplate(solrClient());
solrTemplate.setSolrConverter(solrConverter());
return solrTemplate;
}
}
Malheureusement, lorsque je tente de lire une association de mon exemple Solr je suis l'erreur suivante:
org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [java.lang.String] to type [org.springframework.data.solr.core.geo.Point]
Je ne comprends pas pourquoi il n'est pas capable de trouver un convertisseur si je l'ai explicitement défini dans la méthode solrTemplate()
.
C'est ma définition POM:
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-solr</artifactId>
<version>2.1.4.RELEASE</version>
</dependency>
Merci pour votre aide.
EDIT: J'ai également essayé avec différents BUILD-RELEASE, mais ils sont très instables et j'ai trouvé beaucoup d'erreurs en les utilisant.
Merci Andrea. Je n'ai pas eu le temps pour cet échec. J'ai trop de code de validation Solr/Spring à faire pour être dérouté avec ce problème. Dommage, bien qu'une classe Point spécifique à solr soit définie et impliquée comme point correct à utiliser pour le travail Solr. –