Spring 弹簧靴&x2B;格拉德尔+;战争+;独立Tomcat:应用程序未加载

Spring 弹簧靴&x2B;格拉德尔+;战争+;独立Tomcat:应用程序未加载,spring,tomcat,gradle,spring-boot,war,Spring,Tomcat,Gradle,Spring Boot,War,在多次尝试解决下面这个简单的难题后,我陷入了沮丧 我从spring.io创建了一个web应用程序(war)。非常简单的演示,您可以看看这个git存储库: 运行gradle build将生成demo.war(也提交到存储库),我将其复制到tomcat(7/CentOs)webapps,然后启动服务器 以下是我的tomcat日志的树结构: [root@localhost logs]# tree . ├── catalina.2016-12-25.log ├── host-manager.2016-1

在多次尝试解决下面这个简单的难题后,我陷入了沮丧

我从spring.io创建了一个web应用程序(war)。非常简单的演示,您可以看看这个git存储库:

运行gradle build将生成demo.war(也提交到存储库),我将其复制到tomcat(7/CentOs)webapps,然后启动服务器

以下是我的tomcat日志的树结构:

[root@localhost logs]# tree
.
├── catalina.2016-12-25.log
├── host-manager.2016-12-25.log
├── localhost.2016-12-25.log
├── localhost_access_log.2016-12-25.txt
└── manager.2016-12-25.log
localhost.2016-12-25.log文件在我启动服务器后得到以下日志:

Dec 25, 2016 5:26:31 PM org.apache.catalina.core.ApplicationContext log
INFO: 2 Spring WebApplicationInitializers detected on classpath
Dec 25, 2016 5:26:33 PM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring embedded WebApplicationContext
因此catalina.2016-12-25.log:

INFO: Starting Servlet Engine: Apache Tomcat/7.0.69
Dec 25, 2016 5:26:30 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive /var/lib/tomcat/webapps/demo-0.0.1-SNAPSHOT.war
Dec 25, 2016 5:26:31 PM org.apache.catalina.startup.TldConfig execute
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
Dec 25, 2016 5:26:35 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deployment of web application archive /var/lib/tomcat/webapps/demo-0.0.1-SNAPSHOT.war has finished in 5,599 ms
Dec 25, 2016 5:26:35 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Dec 25, 2016 5:26:35 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Dec 25, 2016 5:26:35 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 5650 ms
我没有看到spring启动应用程序在任何地方都没有打印系统输出(来自DemoApplication.java和Servletilizer),也没有看到spring启动横幅,而且我还尝试添加了一个无法访问的控制器

有人能给我们一些启示吗

为了快速查看,我正在打印war文件的结构:

[root@localhost demo-0.0.1-SNAPSHOT]# tree
.
├── META-INF
│   └── MANIFEST.MF
├── org
│   └── springframework
│       └── boot
│           └── loader
│               ├── archive
│               │   ├── Archive.class
│               │   ├── Archive$Entry.class
│               │   ├── Archive$EntryFilter.class
│               │   ├── ExplodedArchive$1.class
│               │   ├── ExplodedArchive.class
│               │   ├── ExplodedArchive$FileEntry.class
│               │   ├── ExplodedArchive$FileEntryIterator.class
│               │   ├── ExplodedArchive$FileEntryIterator$EntryComparator.class
│               │   ├── JarFileArchive.class
│               │   ├── JarFileArchive$EntryIterator.class
│               │   └── JarFileArchive$JarFileEntry.class
│               ├── data
│               │   ├── ByteArrayRandomAccessData.class
│               │   ├── RandomAccessData.class
│               │   ├── RandomAccessDataFile.class
│               │   ├── RandomAccessDataFile$DataInputStream.class
│               │   ├── RandomAccessDataFile$FilePool.class
│               │   └── RandomAccessData$ResourceAccess.class
│               ├── ExecutableArchiveLauncher$1.class
│               ├── ExecutableArchiveLauncher.class
│               ├── jar
│               │   ├── AsciiBytes.class
│               │   ├── Bytes.class
│               │   ├── CentralDirectoryEndRecord.class
│               │   ├── CentralDirectoryFileHeader.class
│               │   ├── CentralDirectoryParser.class
│               │   ├── CentralDirectoryVisitor.class
│               │   ├── FileHeader.class
│               │   ├── Handler.class
│               │   ├── JarEntry.class
│               │   ├── JarEntryFilter.class
│               │   ├── JarFile$1.class
│               │   ├── JarFile$2.class
│               │   ├── JarFile$3.class
│               │   ├── JarFile.class
│               │   ├── JarFileEntries$1.class
│               │   ├── JarFileEntries.class
│               │   ├── JarFileEntries$EntryIterator.class
│               │   ├── JarFile$JarFileType.class
│               │   ├── JarURLConnection$1.class
│               │   ├── JarURLConnection.class
│               │   ├── JarURLConnection$JarEntryName.class
│               │   └── ZipInflaterInputStream.class
│               ├── JarLauncher.class
│               ├── LaunchedURLClassLoader$1.class
│               ├── LaunchedURLClassLoader.class
│               ├── Launcher.class
│               ├── MainMethodRunner.class
│               ├── PropertiesLauncher$1.class
│               ├── PropertiesLauncher$ArchiveEntryFilter.class
│               ├── PropertiesLauncher.class
│               ├── PropertiesLauncher$FilteredArchive$1.class
│               ├── PropertiesLauncher$FilteredArchive.class
│               ├── PropertiesLauncher$PrefixMatchingArchiveFilter.class
│               ├── util
│               │   └── SystemPropertyUtils.class
│               └── WarLauncher.class
└── WEB-INF
    ├── classes
    │   ├── application.properties
    │   ├── com
    │   │   └── example
    │   │       ├── DemoApplication.class
    │   │       └── ServletInitializer.class
    │   ├── static
    │   └── templates
    ├── lib
    │   ├── classmate-1.3.3.jar
    │   ├── hibernate-validator-5.2.4.Final.jar
    │   ├── jackson-annotations-2.8.5.jar
    │   ├── jackson-core-2.8.5.jar
    │   ├── jackson-databind-2.8.5.jar
    │   ├── jboss-logging-3.3.0.Final.jar
    │   ├── jcl-over-slf4j-1.7.22.jar
    │   ├── jul-to-slf4j-1.7.22.jar
    │   ├── log4j-over-slf4j-1.7.22.jar
    │   ├── logback-classic-1.1.8.jar
    │   ├── logback-core-1.1.8.jar
    │   ├── slf4j-api-1.7.22.jar
    │   ├── snakeyaml-1.17.jar
    │   ├── spring-aop-5.0.0.BUILD-SNAPSHOT.jar
    │   ├── spring-beans-5.0.0.BUILD-SNAPSHOT.jar
    │   ├── spring-boot-2.0.0.BUILD-SNAPSHOT.jar
    │   ├── spring-boot-autoconfigure-2.0.0.BUILD-SNAPSHOT.jar
    │   ├── spring-boot-starter-2.0.0.BUILD-SNAPSHOT.jar
    │   ├── spring-boot-starter-logging-2.0.0.BUILD-SNAPSHOT.jar
    │   ├── spring-boot-starter-web-2.0.0.BUILD-SNAPSHOT.jar
    │   ├── spring-context-5.0.0.BUILD-SNAPSHOT.jar
    │   ├── spring-core-5.0.0.BUILD-SNAPSHOT.jar
    │   ├── spring-expression-5.0.0.BUILD-SNAPSHOT.jar
    │   ├── spring-web-5.0.0.BUILD-SNAPSHOT.jar
    │   ├── spring-webmvc-5.0.0.BUILD-SNAPSHOT.jar
    │   └── validation-api-1.1.0.Final.jar
    └── lib-provided
        ├── spring-boot-starter-tomcat-2.0.0.BUILD-SNAPSHOT.jar
        ├── tomcat-embed-core-8.5.6.jar
        ├── tomcat-embed-el-8.5.6.jar
        └── tomcat-embed-websocket-8.5.6.jar
和清单文件:

[root@localhost META-INF]# cat MANIFEST.MF 
Manifest-Version: 1.0
Start-Class: com.example.DemoApplication
Spring-Boot-Classes: WEB-INF/classes/
Spring-Boot-Lib: WEB-INF/lib/
Spring-Boot-Version: 2.0.0.BUILD-SNAPSHOT
Main-Class: org.springframework.boot.loader.WarLauncher

我发现了这个问题:这个答案帮助我找到了catalina.out.log文件:从那里我可以开始调试。
[root@localhost META-INF]# cat MANIFEST.MF 
Manifest-Version: 1.0
Start-Class: com.example.DemoApplication
Spring-Boot-Classes: WEB-INF/classes/
Spring-Boot-Lib: WEB-INF/lib/
Spring-Boot-Version: 2.0.0.BUILD-SNAPSHOT
Main-Class: org.springframework.boot.loader.WarLauncher