Spring RESTful服务作为WAR而不是Tomcat中的JAR

Eri*_*rik 18 java spring tomcat gradle spring-boot

我正在使用Java Spring创建REST Web服务.我已成功加载STS,示例详述如下:

"本指南将引导您完成使用Spring创建"hello world"RESTful Web服务的过程." http://spring.io/guides/gs/rest-service/

然而,该教程只是到目前为止..我想创建一个WAR文件,而不是一个包含servlet的自运行jar,并部署该WAR文件.然后我找到了本教程,并试图修改第一个教程build.gradle文件.

"将Spring Boot JAR应用程序转换为WAR" http://spring.io/guides/gs/convert-jar-to-war/

它似乎在.war文件中构建得很好..服务在我的TOMCAT实例的管理器中运行..但是一旦我尝试使用该服务,我就得到了404.

网址404'd

http://localhost:8080/gs-rest-service-0.1.0/dbgreeting?name=MyName
Run Code Online (Sandbox Code Playgroud)

我需要修改映射吗?

DataBaseController.java

@RequestMapping("/dbgreeting")
    public @ResponseBody DataBaseGreeter dbgreeting(
            @RequestParam(value="name", required=false, defaultValue="World") String name) {
        return new DataBaseGreeter(counter.incrementAndGet(),String.format(template, name));
    }
Run Code Online (Sandbox Code Playgroud)

现在我根据事物的混合创建了.war文件......并且担心我可能错过了一些东西.

我发现OSX上的XAMPP不包含webapp /文件夹,这迫使我改为加载Bitnami的Tomcat堆栈.人们通常会在此基础上在XAMPP和其他堆栈之间切换吗?或者我错过了在XAMPP中创建webapp文件夹的内容?

Cod*_*imp 6

WAR只是一个特殊的JAR.它需要一个WEB-INF,在这个WEB-INF下你需要一个web.xml来描述你的部署,任何app server dependentXML配置文件,通常还有lib,类和其他的几率.

最简单的方法是使用Maven来创建WAR.我认为你应该能够简单地将pom.xml中的项目类型从JAR更改为WAR.您遵循的教程似乎使用Gradle,而Gradle又使用Maven,我相信你应该在那里有一个.除此之外,谷歌有关如何构建WAR的教程.我不相信Tomcat需要任何特殊的部署描述符,因此您只需要web .xml.

  • "Gradle,反过来使用Maven我相信"我不认为这是真的......它只是给你很多Maven所做的. (3认同)
  • 我只想澄清一下,在Servlet 3.0中,web.xml文件是可选的. (2认同)