java.lang.IllegalArgumentException: Could not find class [org.springframework.data.mongodb.MongoDatabaseFactory]

Viewed 1720

I have created a config file for mongo_connection have for the SSL connection. My build is getting succesfull, but while running the app its giving error java.lang.IllegalArgumentException: Could not find class [org.springframework.data.mongodb.MongoDatabaseFactory] error

While running the same in mongo compass i am able to connect with mongo string. please check the below code and correct where I am going wrong.

<dependencies>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-mongodb</artifactId>
            <version>2.1.8.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>com.googlecode.json-simple</groupId>
            <artifactId>json-simple</artifactId>
            <version>1.1.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>4.1.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>4.1.2</version>
        </dependency>
        <dependency>
            <groupId>com.googlecode.json-simple</groupId>
            <artifactId>json-simple</artifactId>
            <version>1.1.1</version>
        </dependency>
        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongo-java-driver</artifactId>
            <version>3.12.7</version>
        </dependency>
        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>bson</artifactId>
            <version>4.2.3</version>
        </dependency>
        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongodb-driver-core</artifactId>
            <version>4.2.3</version>
        </dependency>
        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongodb-driver-sync</artifactId>
            <version>4.2.3</version>
        </dependency>
    </dependencies>

Above dependencies I have added, which is not helping.

package com.xxx.yyy.config;

import com.mongodb.MongoClient;
import com.mongodb.MongoClientOptions;
import com.mongodb.MongoClientURI;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.mongodb.config.AbstractMongoConfiguration;

@Configuration
public class MongoDbConfig extends AbstractMongoConfiguration {

    public MongoClientOptions.Builder mongoClientOptionsBuilder(){
        String javaPath = System.getProperty("java.home");
        System.setProperty ("javax.net.ssl.keyStore",javaPath+"/lib/security/cacerts");
        System.setProperty ("javax.net.ssl.keyStorePassword","changeit");
        System.out.println(javaPath);
        System.out.println(System.getProperty("javax.net.ssl.keyStore"));
        MongoClientOptions.Builder builder = MongoClientOptions.builder();
//        MongoClientOptions options=builder.sslEnabled(true).build();
        return builder;
    }


    MongoClientURI uri = new MongoClientURI("my_mongo_url",
            mongoClientOptionsBuilder().sslEnabled(true));

    @Override
    public MongoClient mongoClient() {
        return new MongoClient(uri);
    }

    @Override
    protected String getDatabaseName() {
        return "MY_DATABASE_NAME";
    }
}

Please check and thanks in advance

1 Answers

I am afraid I meet a similar issue with you, When I configure multi datasource for mongo db with Springboot.

My dependency is

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
    <version>2.1.0.RELEASE</version>
</dependency>

I resolved my issue after removed.

<version>2.1.0.RELEASE</version>

In my opinion, this is an api version issue.

Related