Spring Java: erreur [Résolu]

Signaler
Messages postés
203
Date d'inscription
lundi 14 août 2017
Statut
Membre
Dernière intervention
9 juin 2021
-
Messages postés
203
Date d'inscription
lundi 14 août 2017
Statut
Membre
Dernière intervention
9 juin 2021
-
Bonjour, j'essaie de travailler avec le framework Spring. Cependant, en voulant executer ce code


package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class DemoApplication {

public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}

@GetMapping("/hello")
public String hello(@RequestParam(value = "name", defaultValue = "World") String name) {
return String.format("Hello %s!", name);
}
}



j'ai cette erreur:


Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:2.4.5:run (default-cli) on project demo: Application finished with exit co
de: 1 -> [Help 1]


J'ai essayé de chercher une solution, mais je ne vois vraiment pas d'où cela vient. J'ai bien installé Jdk et Jre dans le bon dossier, mais je suis toujours incapable d'executer le code.

Auriez-vous une suggestion à me proposer ?

Cordialement


Configuration: Windows / Firefox 88.0

2 réponses

Messages postés
16361
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
11 juin 2021
2 843
Bonjour,

Le code du web service ne devrait pas être dans la même classe que la méthode main.
Voir la documentation et les exemples : https://spring.io/guides/gs/actuator-service/
@SpringBootApplication
public class DemoApplication {
	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}
}

@RestController
public class HelloWorldController {
    @GetMapping("/hello")
	public String hello(@RequestParam(value = "name", defaultValue = "World") String name) {
		return String.format("Hello %s!", name);
	}
}
Messages postés
203
Date d'inscription
lundi 14 août 2017
Statut
Membre
Dernière intervention
9 juin 2021
1
Bonjour et merci pour ton aide.

J'ai oublié de préciser que j'avais cette erreur avec la commande suivante:
mvnw spring-boot:run

sachant que quand je lance cette commande, je suis dans le dossier du projet, qui lui-même se trouve dans jre.

J'ai essayé de lancé cette commande dans le dossier du projet lorsqu'il est dans le répertoire jdk, mais du coup j'ai l'erreur suivante:
Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources) on project demo: Cannot create resour
ce output directory: C:\Program Files\Java\jdk-16.0.1\demo\target\classes -> [Help 1]


j'ai essayé d'aller voir les options du compilateur, mais je n'ai rien vu de pertinent
Messages postés
16361
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
11 juin 2021
2 843
Bonjour,

"dans le dossier du projet, qui lui-même se trouve dans jre"
Il ne faut jamais travailler dans le dossier du JRE ou du JDK tu risquerais de corrompre Java et impacter tous les programmes, pas seulement celui que tu exécutes.

Il faut que tu ajoutes des variables d'environnement :
  • JAVA_HOME avec le répertoire d'installation du JDK
  • MAVEN_HOME avec le répertoire d'installation de Maven

Puis modifier (ou créer) la variable d'environnement PATH pour ajouter %JAVA_HOME%\bin et %MAVEN_HOME%\bin
Plus d'informations sur https://java.com/fr/download/help/path_fr.html

En ligne de commande tu peux vérifier que c'est bien configuré avec javac -version et mvn --version

Avec ça tu pourras donc déplacer ton code dans n'importe quel répertoire où tu as des droits d'écriture et utiliser les commandes Java et Maven sans problème
Messages postés
203
Date d'inscription
lundi 14 août 2017
Statut
Membre
Dernière intervention
9 juin 2021
1 >
Messages postés
16361
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
11 juin 2021

Ok, en fait pour la variable d'environnement JAVA_HOME, j'avais mis le path vers jre, et non jdk, et je n'avais tout simplement pas créé la variable MAVEN_HOME...
Tout fonctionne, merci à toi :)
Messages postés
203
Date d'inscription
lundi 14 août 2017
Statut
Membre
Dernière intervention
9 juin 2021
1 >
Messages postés
203
Date d'inscription
lundi 14 août 2017
Statut
Membre
Dernière intervention
9 juin 2021

Edit: j'ai dû également aller dans le fichier pom.xml pour indiquer la bonne version de java :
<java.version>16</java.version>


et j'ai également dû utiliser un autre port (le 9090) au lieu du 8080 qui était déjà utilisé par un autre service!

Bref, merci !

Par contre, dès que je modifie un petit truc (par exemple, le texte à afficher sur une page), je dois arrêter le serveur puis le relancer, sinon la modification n'a pas été prise en compte. C'est normal ?
Messages postés
16361
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
11 juin 2021
2 843 >
Messages postés
203
Date d'inscription
lundi 14 août 2017
Statut
Membre
Dernière intervention
9 juin 2021

Bonjour,

Oui c'est normal, parce qu'il faut recompiler à chaque fois, mais il existe des outils qui permettent de faire mieux.

https://docs.spring.io/spring-boot/docs/current/reference/html/howto.html#howto.hotswapping
Messages postés
203
Date d'inscription
lundi 14 août 2017
Statut
Membre
Dernière intervention
9 juin 2021
1 >
Messages postés
16361
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
11 juin 2021

Oui apparemment je dois ajouter

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>

mais spring-boot-devtools n'est pas reconnu.
Je vais aller voir comment régler ça.

Merci pour ton aide encore :)