2017-08-13 1 views
1

Mon objet que je passe dans le testobjet RestAssured- dans le corps lance Erreur

@Data 
public class UserRequest { 
@JsonProperty("name") 
private final String name; 
@JsonProperty("surname") 
private final String surname; 
@JsonProperty("email") 
private final String email; 
@JsonProperty("iaAdmin") 
private final boolean isAdmin; 

}

que je l'ai tester

@RunWith(SpringRunner.class) 
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) 
public class UserControllerIT { 

@LocalServerPort 
private int port; 

@Test 
public void testIsCreatingNewUser() throws IOException{ 
    given() 
      .when() 
      .body(new UserRequest("asd","sad","asd",false))//.body(TestGenerator.getUserRequest()) 
      .port(port) 
      .post("/user/" + TestGenerator.randomUUID) 
      .then() 
      .statusCode(HttpStatus.SC_CREATED); 
} 

i eu erreur:

java.util.ServiceConfigurationError: com.fasterxml.jackson.databind.Module: Provider com.fasterxml.jackson.module.kotlin.KotlinModule could not be instantiated

et à la pile inférieure

Caused by: java.lang.ClassNotFoundException: kotlin.jvm.internal.DefaultConstructorMarker 
at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
... 79 more 

Que se passe-t-il ?! Kotlin ... j'utilise java avec spring boot v2.0 m3

+0

Quel IDE utilisez-vous? Parfois, il y a des erreurs avec les dépendances téléchargées (téléchargements incomplets, fichiers brisés, etc.) Essayez de supprimer le dossier .m2/com/fasterxml/jackson/module/kotlin et essayez d'actualiser le projet pour télécharger à nouveau toutes les dépendances. –

+0

Il semble qu'une partie de votre environnement utilise kotlin, qui est un langage qui peut être placé au-dessus d'une machine virtuelle Java pour étendre la langue. Avez-vous un studio Android, par exemple? Vous pourriez probablement découvrir quel composant vous utilisez s'appuyez sur Kotlin. – Assafs

+0

Intellij IDEA 2017.2, j'ai android studio bur je n'ai pas utilisé pendant longtemps. Je vais essayer de supprimer .m2 –

Répondre

0

Je réponds à la question moi-même. Merci à @Sebastian Duque commentaires i ajouter les dépendances de http://www.baeldung.com/spring-boot-kotlin et il a aidé ...

<!--kotlin/ it needs jackson to map objects--> 
    <dependency> 
     <groupId>org.jetbrains.kotlin</groupId> 
     <artifactId>kotlin-stdlib-jre8</artifactId> 
     <version>1.1.2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.jetbrains.kotlin</groupId> 
     <artifactId>kotlin-reflect</artifactId> 
     <version>1.1.2</version> 
    </dependency> 
    <dependency> 
     <groupId>com.fasterxml.jackson.module</groupId> 
     <artifactId>jackson-module-kotlin</artifactId> 
     <version>2.9.0</version> 
    </dependency> 


mais il est étrange que Jackson au printemps Boot v2 a besoin Kotlin dependendecies ... J'utilise les dépendances de jackson par ressort démarreurs de démarrage, donc je n'ai pas inclus de jackson.

0

Si vous utilisez Maven ne comprennent pas des dépendances-démarrage du printemps

<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-web</artifactId> 
    <version>2.0.0.M6</version> 
    <exclusions> 
     <exclusion> 
       <groupId>com.fasterxml.jackson.module</groupId> 
       <artifactId>jackson-module-kotlin</artifactId> 
     </exclusion> 
    </exclusions> 
</dependency> 

<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-test</artifactId> 
    <version>2.0.0.M6</version> 
    <scope>test</scope> 
    <exclusions> 
     <exclusion> 
      <groupId>com.fasterxml.jackson.module</groupId> 
      <artifactId>jackson-module-kotlin</artifactId> 
     </exclusion> 
    </exclusions> 
</dependency> 

Pour d'autres outils de construction, mettre à jour cette solution