créer des services de repos printanier sans utiliser de botte de spring

J’ai suivi le tutoriel Mise en route sur spring.io pour créer des services REEST https://spring.io/guides/gs/rest-service/ . Le problème est que ce didacticiel explique uniquement comment produire un fichier jar autonome avec tomcat intégré au démarrage.

Existe-t-il un moyen de créer un projet à partir de zéro pour générer une guerre à déployer, par exemple, sur une instance de tomcat existante?

PS: J’ai trouvé un thread précédent Spring RESTful Service sous forme de WAR au lieu de JAR dans Tomcat sur stackoverflow concernant le même problème. Le problème est que les réponses et suggestions acceptées ne résolvent pas exactement mon problème, car je ne cherche pas à modifier le projet de démarrage de spring des applications autonomes pour qu’il fonctionne sur un conteneur tomcat externe, mais souhaite trouver un solution «plus propre» ne comportant pas du tout une botte de spring. (Je ne suis pas tout à fait sûr de savoir comment se comporter ici, étant encore assez nouveau à stackoverflow. J’espère que l’ouverture d’une nouvelle question est la bonne procédure).

Vous n’avez pas besoin de Spring Boot pour créer un contrôleur de repos.

Veuillez suivre la documentation du framework Spring sur la configuration de MVC http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#spring-web

L’installation de MVC (le DispatcherServlet ) dépend de votre version de spring, vous pouvez utiliser xml ou configurer par programme: http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc -servlet

Une fois cette configuration effectuée, vous pouvez append un contrôleur de repos à votre application. Notez qu’un contrôleur de repos (l’annotation @RestController ) est une annotation de stéréotype associant @ResponseBody et @Controller . En d’autres termes, le contrôleur renvoie un object dans le corps de la réponse au lieu de renvoyer une vue.

Ceci est un exemple parfait expliquant ce que j’ai dit ci-dessus: http://www.programming-free.com/2014/01/spring-mvc-40-restful-web-services.html

Voici un autre exemple:

Disposition du répertoire:

 . ├── ./pom.xml └── ./src └── ./src/main ├── ./src/main/java │  └── ./src/main/java/biz │  └── ./src/main/java/biz/tugay │  └── ./src/main/java/biz/tugay/restfulspring │  └── ./src/main/java/biz/tugay/restfulspring/config │  ├── ./src/main/java/biz/tugay/restfulspring/config/RestfulHello.java │  └── ./src/main/java/biz/tugay/restfulspring/config/WebAppInitalizer.java └── ./src/main/webapp └── ./src/main/webapp/WEB-INF └── ./src/main/webapp/WEB-INF/web.xml 

pom.xml

  4.0.0 biz.tugay restfulSpring war 1.0-SNAPSHOT restfulSpring Maven Webapp http://maven.apache.org   javax.servlet javax.servlet-api 3.0.1 provided   org.springframework spring-core 4.3.16.RELEASE   org.springframework spring-context 4.3.16.RELEASE   org.springframework spring-web 4.3.16.RELEASE   org.springframework spring-webmvc 4.3.16.RELEASE    restfulSpring   org.apache.maven.plugins maven-comstackr-plugin 3.1  1.7 1.7    org.eclipse.jetty jetty-maven-plugin 9.2.1.v20140609     

web.xml

    

WebAppInitalizer.java

 package biz.tugay.restfulspring.config; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; @Configuration @EnableWebMvc @ComponentScan("biz.tugay.restfulspring") public class WebAppInitalizer extends AbstractAnnotationConfigDispatcherServletInitializer { @Override protected Ssortingng[] getServletMappings() { return new Ssortingng[]{"/*"}; } @Override protected Class[] getRootConfigClasses() { return new Class[]{WebAppInitalizer.class}; } @Override protected Class[] getServletConfigClasses() { return new Class[0]; } } 

RestfulHello.java

 package biz.tugay.restfulspring.config; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController(value = "/") public class RestfulHello { @RequestMapping(value = "hello") public ResponseEntity sayHello() { final HttpHeaders httpHeaders= new HttpHeaders(); httpHeaders.setContentType(MediaType.APPLICATION_JSON); return new ResponseEntity("{\"msg\": \"Hello World\"}", httpHeaders, HttpStatus.OK); } } 

Construire et exécuter:

 mvn clean install mvn jetty:start 

Tester:

 > GET /hello HTTP/1.1 > Host: localhost:8080 > User-Agent: insomnia/5.15.0 > Accept: */* < HTTP/1.1 200 OK < Date: Fri, 27 Apr 2018 00:06:07 GMT < Content-Type: application/json < Content-Length: 22 < Server: Jetty(9.2.1.v20140609) 

Contenu reçu:

 { "msg": "Hello World" } 

Peut être téléchargé à partir d' ici .