Finalmente ho capito perché stavo riscontrando questo problema.
Quando si utilizza l'inizializzazione Servlet 3 assicurarsi di aggiungere il contesto dell'applicazione al contesto mongo come segue
@Autowired
private ApplicationContext appContext;
public MongoDbFactory mongoDbFactory() throws UnknownHostException {
return new SimpleMongoDbFactory(new MongoClient("localhost"), "apollo-mongodb");
}
@Bean
MongoTemplate mongoTemplate() throws UnknownHostException {
final MongoDbFactory factory = mongoDbFactory();
final MongoMappingContext mongoMappingContext = new MongoMappingContext();
mongoMappingContext.setApplicationContext(appContext);
// Learned from web, prevents Spring from including the _class attribute
final MappingMongoConverter converter = new MappingMongoConverter(factory, mongoMappingContext);
converter.setTypeMapper(new DefaultMongoTypeMapper(null));
return new MongoTemplate(factory, converter);
}
Controlla il cablaggio automatico del contesto e anchemongoMappingContext.setApplicationContext(appContext);
Con queste due linee sono riuscito a cablare correttamente il componente per utilizzarlo in modalità multi tenant