2015-03-25 205 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文件的名称)。