2015-06-18 116 views
3

我使用Spring引導1.2.4.RELEASE與gs-rest-service源文件。 我得到了:春季啓動war文件部署在Tomcat

127.0.0.1 - - [18/Jun/2015:09:59:25 +0300] "GET /gs-rest-service-0.1.0/ HTTP/1.1" 404 1021 

在Tomcat日誌中沒有其他異常。

我看過相關的問題,但我的測試不會運行。 Spring Boot War deployed to Tomcat

我已閱讀howto-create-a-deployable-warPackaging executable jar and war files

也許我想念一些東西。

我來源:

1.pom.xml

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>org.springframework</groupId> 
    <artifactId>gs-rest-service</artifactId> 
    <version>0.1.0</version> 
    <packaging>war</packaging> 

    <properties>   
     <start-class>hello.Application</start-class> 
     <java.version>1.8</java.version> 
    </properties> 


    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.2.4.RELEASE</version> 
    </parent> 

    <dependencies> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-tomcat</artifactId> 
      <scope>provided</scope> 
     </dependency>   
    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.3.2</version> 
       <configuration> 
        <showDeprecation>true</showDeprecation> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 

    <repositories> 
     <repository> 
      <id>spring-releases</id> 
      <url>https://repo.spring.io/libs-release</url> 
     </repository> 
    </repositories> 
    <pluginRepositories> 
     <pluginRepository> 
      <id>spring-releases</id> 
      <url>https://repo.spring.io/libs-release</url> 
     </pluginRepository> 
    </pluginRepositories> 
</project> 

2.Application.java

package hello; 

import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 
import org.springframework.boot.builder.SpringApplicationBuilder; 
import org.springframework.boot.context.web.SpringBootServletInitializer; 

@SpringBootApplication 
public class Application extends SpringBootServletInitializer { 

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

    public static void main(String[] args) { 
     SpringApplication.run(Application.class, args); 
    } 
} 

文件Greeting.java和GreetingController.java不會改變。

+0

你如何主持並測試你的WAR? – luboskrnac

+0

我將war文件複製到webapp目錄,我可以在tomcat manager頁面看到我的應用程序。然後我嘗試去http:// localhost:8080/gs-rest-service-0.1.0/greeting的「歡迎頁面」,問候 – kotygoroshko

+0

java -jar gs-rest-service-0.1.0.war正常工作。 – kotygoroshko

回答

8

剛剛在這裏嘗試過,可能會重現完全相同的行爲。

一樣傻,因爲它聽起來,很有可能你是下一個Java JRE 1.7(炒)運行的外部的tomcat,同時具有針對1.8編譯的代碼(我們知道這一點,從您的POM)。

奇怪的是,沒有任何錯誤,並且應用程序會出現在管理應用程序,但你得到一個404,當你試圖訪問它。確認此

的方法之一是看你的tomcat日誌輸出。你看到Spring Boot橫幅嗎?可能不會。

+1

你說得對。 - ))))) – kotygoroshko

+0

嗨,我使用sudo update-java-alternatives -s java-1.8.0-openjdk-amd64將java版本設置爲java 8。之後,我重新啓動了tomcat服務器。問題仍未解決。我們如何繼續在這裏使用Java 8? – thisisananth

+0

嗨,我不得不將/ etc/default/tomcat7中的JAVA_HOME屬性更改爲Java 8.之後它開始工作。以上關於錯誤的Java版本的評論幫助了很多。謝謝。 – thisisananth

0

嘗試localhost:8080/gs-rest-service/greeting在你的Tomcat。 Tomcat通常會爲每個WAR應用程序提供一個名稱。該名稱不是用作URL的根部分。在大多數情況下,它是WAR文件的名稱,在您的案例中爲gs-rest-service

+0

我前面指出。我將war文件複製到webapp目錄,我可以在tomcat manager頁面看到我的應用程序。然後,我嘗試去localhost上的「歡迎頁面」:8080/gs-rest-service-0.1.0/greeting。這個從tomcat管理器頁面鏈接到最後添加問候語。 – kotygoroshko

+0

你嘗試過localhost:8080/gs-rest-service/greeting嗎? – luboskrnac

+0

是的。我試着去看這個鏈接。 – kotygoroshko