簡體   English   中英

Spring RESTful服務作為WAR而不是Tomcat中的JAR

[英]Spring RESTful Service as a WAR instead of JAR in Tomcat

我正在使用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

我需要修改映射嗎?

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));
    }

現在我根據事物的混合創建了.war文件......並且擔心我可能錯過了一些東西。

我發現OSX上的XAMPP不包含webapp /文件夾,這迫使我改為加載Bitnami的Tomcat堆棧。 人們通常會在此基礎上在XAMPP和其他堆棧之間切換嗎? 或者我錯過了在XAMPP中創建webapp文件夾的內容?

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。

OP的答案從問題轉移到這里

男孩,我覺得真的很蠢..發現更改了gradle指令之后教程還有更多內容..包括非常需要的自動配置,取代/取代了對web.xml的需求

初始化servlet

以前,該應用程序包含一個public static void main()方法,spring-boot-gradle-plugin配置為在使用java -jar命令時運行。

通過將其轉換為沒有XML文件的WAR文件,您需要向servlet容器發出有關如何啟動應用程序的不同信號。

的src / main / JAVA /你好/ HelloWebXml.java

package hello;

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.SpringBootServletInitializer;

public class HelloWebXml extends SpringBootServletInitializer {

  @Override
  protected void configure(SpringApplicationBuilder application) {
     application.sources(Application.class);
  }

}

將贊揚第一個答案,但你們都是正確的,因為需要web.xml(或Spring-Boot使用它來替換它)。

我希望在Spring啟動應用程序啟動時會看到一些INFO輸出,所以有些想法是:

嘗試一個常規的tomcat實例

  • 下載並解壓縮zip分發
  • 使用bin/startup.sh啟動tomcat
  • 將您的戰爭復制到webapps目錄
  • 檢查日志...希望看到彈簧啟動的一些證據

手動檢查war文件

  • 解壓縮你的war文件
  • 期待看到WEB-INF / web.xml

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM