Spring Java: erreur

Résolu/Fermé
charline159 Messages postés 208 Date d'inscription lundi 14 août 2017 Statut Membre Dernière intervention 22 juin 2022 - 20 mai 2021 à 15:06
charline159 Messages postés 208 Date d'inscription lundi 14 août 2017 Statut Membre Dernière intervention 22 juin 2022 - 24 mai 2021 à 17:05
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
A voir également:

2 réponses

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
21 mai 2021 à 12:08
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);
	}
}
0
charline159 Messages postés 208 Date d'inscription lundi 14 août 2017 Statut Membre Dernière intervention 22 juin 2022 1
22 mai 2021 à 16:25
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
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
22 mai 2021 à 17:31
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
0
charline159 Messages postés 208 Date d'inscription lundi 14 août 2017 Statut Membre Dernière intervention 22 juin 2022 1 > KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024
22 mai 2021 à 20:21
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 :)
0
charline159 Messages postés 208 Date d'inscription lundi 14 août 2017 Statut Membre Dernière intervention 22 juin 2022 1 > charline159 Messages postés 208 Date d'inscription lundi 14 août 2017 Statut Membre Dernière intervention 22 juin 2022
Modifié le 22 mai 2021 à 22:10
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 ?
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015 > charline159 Messages postés 208 Date d'inscription lundi 14 août 2017 Statut Membre Dernière intervention 22 juin 2022
23 mai 2021 à 11:12
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
0
charline159 Messages postés 208 Date d'inscription lundi 14 août 2017 Statut Membre Dernière intervention 22 juin 2022 1 > KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024
24 mai 2021 à 17:05
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 :)
0