2015-03-25 180 views
0

我在archlinux上安裝了tomcat,我嘗試了tomcat7和tomcat8。根據包括官方文檔在內的多個消息來源,部署一個WAR文件就像將其放入webapps文件夾(在我的例子中是/ var/lib/tomcat7/webapps)一樣簡單。 WAR文件被爆炸了。但我不明白的是如何訪問我的Web應用程序。在localhost:8080上有一個tomcat網頁。我也試過本地主機:8080 /名稱的最戰爭文件,但只讓到我用於測試一個HTTP狀態404在tomcat中部署WAR

的應用程序是在春天啓動的第一導向: http://spring.io/guides/gs/spring-boot/

運行「命令mvn包」時,我已經修改了Maven構建文件的pom.xml產生一個WAR文件:

<?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-spring-boot</artifactId> 
    <version>0.1.0</version> 

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

    <packaging>war</packaging> 

    <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> 

    <properties> 
     <java.version>1.7</java.version> 
    </properties> 


    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
     </plugins> 
    </build> 

</project> 
+0

嗯..我希望這是一個簡單的... – user1785730 2015-04-09 11:21:16

+0

哼,一個downvote?你混淆了按鈕嗎? – user1785730 2016-08-08 07:54:28

回答

0

除了修改pom.xml中產生一個WAR文件,它也是neccessary爲Web應用程序配置tomcat。這以前是通過web.xml文件完成的。如今,這可以在應用程序本身內實現。 SpringBootServletInitializer和WebApplicationInitializer是尋找的線索。我發現最簡單的方式來獲得我的所有正在運行的是修改Application.java下列方式:「問候春天啓動」

package hello; 

import java.util.Arrays; 

import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 
import org.springframework.context.ApplicationContext; 
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) { 
     ApplicationContext ctx = SpringApplication.run(Application.class, args); 

     System.out.println("Let's inspect the beans provided by Spring Boot:"); 

     String[] beanNames = ctx.getBeanDefinitionNames(); 
     Arrays.sort(beanNames); 
     for (String beanName : beanNames) { 
      System.out.println(beanName); 
     } 
    } 
} 

現在我可以看到在http://localhost:8080/gs-spring-boot-0.1.0/(gs-spring-boot-0.1.0.war是部署的WAR文件的名稱)。