2015-01-08 65 views
0

我創建和春天有個REST服務,我無法理解我得到如何部署到Tomcat服務器。彈簧安置服務在Tomcat與搖籃

我所熟悉的應用程序放置在一個Tomcat實例與servlet映射等,但看來這是所有的Java類中的Spring註解處理。我已經在Gradle中啓用了'war'插件,並且所有內容都可以正常導出。我只是困惑,因爲Spring需要一個Application類來運行控制器,所以我怎麼得到這個與web.xml文件類似的東西?

我甚至可能不是在正確的軌道上。我還讀了一些關於將.jar部署爲REST端點的內容,但我不知道從哪裏開始。

如果有人能夠給我一個高級的概述,說明如何讓一個Spring REST服務(比如構建的here)在Tomcat實例上運行需要做什麼,我將不勝感激。

的Java 8 春 搖籃2.2.1 Windows 7的

+1

從我瞭解你所談論的春季啓動,對不對?否則,你不需要一個Application類,你需要一個ServletFilter/ContextListener來加載配置。 –

+0

我對Spring Boot的理解(可能不正確)是它包含一個獨立應用程序的嵌入式服務器。我希望能夠擁有的是一個Tomcat實例,其中部署了多個應用程序/上下文。這些應用程序只是REST服務來支持Javascript應用程序。 – user2864874

+0

您使用的是哪個版本的Spring?你看過http://docs.spring.io/autorepo/docs/spring/3.1.x/javadoc-api/org/springframework/web/WebApplicationInitializer.html或http://docs.spring.io/autorepo/docs /spring/4.1.x/spring-framework-reference/htmlsingle/#overview-web? –

回答

0

你需要使用Spring的servlet和Spring上下文創建一個應用程序(war包)(也有在互聯網教程looooots)。您需要包含組件掃描(參考文章http://www.mkyong.com/spring/spring-auto-scanning-components/爲例)。

春掃描組件(和控制器)和識別@Controller或@RestController註釋,並自動將其分配給路由。就是這樣:)。

0

因爲它聽起來就像你正在使用Spring啓動,你應該只需要標記Tomcat的依賴性爲providedRuntime,截至http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#build-tool-plugins-gradle-packaging描述:

... 
apply plugin: 'war' 

war { 
    baseName = 'myapp' 
    version = '0.5.0' 
} 

repositories { 
    jcenter() 
    maven { url "http://repo.spring.io/libs-snapshot" } 
} 

configurations { 
    providedRuntime 
} 

dependencies { 
    compile("org.springframework.boot:spring-boot-starter-web") 
    providedRuntime("org.springframework.boot:spring-boot-starter-tomcat") 
    ... 
} 

那麼你的戰爭應該是部署到外部Tomcat實例。