2017-03-25 7 views
1

ich: Ich bin zum MongoDB mit Feder Boot.And i MongoDB ATLAS URI Connection StringConnecting MongoDB Atlas von Spring Boot

mongodb://userName:<PASSWORD>@icarat-shard-00-00-7lopx.mongodb.net:27017,icarat-shard-00-01-7lopx.mongodb.net:27017,icarat-shard-00-02-7lopx.mongodb.net:27017/<DATABASE>?ssl=true&replicaSet=icarat-shard-0&authSource=admin 

Da ist in meinem Frühling Boot-Anwendung Set i uri in application.properties wie

spring.data.mongodb.uri: mongodb://userName:*****@icarat-shard-00-00-7lopx.mongodb.net:27017,icarat-shard-00-01-7lopx.mongodb.net:27017,icarat-shard-00-02-7lopx.mongodb.net:27017/vehicleplatform?ssl=true&replicaSet=icarat-shard-0&authSource=admin 

Dieses Repository intefface

public interface OrganizationRepository extends MongoRepository<Organization, String> { 

} 

wenn ich spritze OrganizationRepository Schnittstelle Sein Fehler wie folgt angezeigt

Fehler beim Instanziieren [com.mongodb.MongoClient]: Factory-Methode 'Mongo' warf Ausnahme; Die verschachtelte Ausnahme ist java.lang.IllegalArgumentException: Die Verbindungszeichenfolge enthält ungültige Benutzerinformationen. Wenn der Benutzername oder das Passwort ein Doppelpunkt (:) oder ein at-Zeichen (@) enthält, dann muss es

Und diese meine Dokumentklasse

@Document(collection="Organization") 
public class Organization { 

    @Id 
    String id; 

    String orgName; 

    String orgAddress; 

    String pinCode; 

//getter 

//setter 
} 

Das ist mein pom.xml

Urlencoded werden
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.icarat</groupId> 
    <artifactId>vehicleplatform</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>war</packaging> 

    <name>vehicleplatform</name> 
    <url>http://maven.apache.org</url> 


    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.4.0.RELEASE</version> 
     <relativePath/> <!-- lookup parent from repository --> 
    </parent> 

    <properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <java.version>1.8</java.version> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-data-mongodb</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
     </dependency> 

     <!-- mongodb java driver --> 
     <dependency> 
      <groupId>org.mongodb</groupId> 
      <artifactId>mongo-java-driver</artifactId> 
      <version>2.11.0</version> 
     </dependency> 

     <!-- swagger2 dependency --> 

     <dependency> 
      <groupId>io.springfox</groupId> 
      <artifactId> springfox-swagger2</artifactId> 
      <version>2.6.1</version> 
     </dependency> 

     <dependency> 
      <groupId>io.springfox</groupId> 
      <artifactId>springfox-swagger-ui</artifactId> 
      <version>2.6.1</version> 
     </dependency> 
    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

Wie können wir das beheben? Danke

Antwort

2

Ich finde das eigentliche Problem. In meinem vorherigen Atlas-Passwort enthalten @ (Symbol), so ist es nicht supoort. Ich follwed Dokument HERE

WICHTIG Wenn das Passwort URI Zeichen reserviert enthält, müssen Sie entkommen die Zeichen pro RFC 2396. Zum Beispiel, wenn Sie Ihr Passwort @ bc123 ist, müssen Sie das Zeichen @ entkommen, wenn das Kennwort angeben in der Verbindungszeichenfolge; d.h.% 40bc123.

+0

Verwenden Sie stattdessen die folgenden spezifischen Eigenschaften für Benutzername und Kennwort spring.data.mongodb.username = spring.data.mongodb.password = – Fahad

0

instanziiert fehlgeschlagen [com.mongodb.MongoClient]: Factory-Methode 'Mongo' warf Ausnahme; verschachtelte Ausnahme ist java.lang.IllegalArgumentException: Die Verbindungszeichenfolge enthält ungültige Benutzerinformationen. Wenn der Benutzername oder das Passwort einen Doppelpunkt (:) oder ein at-Zeichen (@) enthält, dann muss es

Das Problem ist kristallklar Urlencoded werden, wenn Sie mit SpringBoot mit MongoDB Atlas zu verbinden versuchen, Ihr Passwort muss mit der URL verschlüsselt sein, was sicherer ist.

Here können Sie sehen, wie URL-Encoding-Passwort in MongoDB Atlas.

Verwandte Themen