简体   繁体   中英

Spring boot stops after starting

errors are:

/usr/lib/jvm/java-8-oracle/bin/java -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:40745,suspend=y,server=n -Dspring.output.ansi.enabled=always -Dfile.encoding=UTF-8 -classpath /usr/lib/jvm/java-8-oracle/jre/lib/charsets.jar:/usr/lib/jvm/java-8-oracle/jre/lib/deploy.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/cldrdata.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/dnsns.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/jaccess.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/jfxrt.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/localedata.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/nashorn.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/sunec.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/sunjce_provider.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/sunpkcs11.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/zipfs.jar:/usr/lib/jvm/java-8-oracle/jre/lib/javaws.jar:/usr/lib/jvm/java-8-oracle/jre/lib/jce.jar:/usr/lib/jvm/java-8-oracle/jre/lib/jfr.jar:/usr/lib/jvm/java-8-oracle/jre/lib/jfxswt.jar:/usr/lib/jvm/java-8-oracle/jr       main] o.s.b.c.c.ConfigFileApplicationListener  : Skipped (empty) config file 'file:./application.properties' for profile default
2016-03-25 23:43:41.426 DEBUG 18169 --- [           main] o.s.b.c.c.ConfigFileApplicationListener  : Skipped (empty) config file 'classpath:/application.properties' for profile default
2016-03-25 23:43:41.460  INFO 18169 --- [           main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@3738449f: startup date [Fri Mar 25 23:43:41 EET 2016]; root of context hierarchy
2016-03-25 23:43:44.256 DEBUG 18169 --- [           main] o.s.b.a.AutoConfigurationPackages        : @EnableAutoConfiguration was declared on a class in the package 'org.infoowl'. Automatic @Repository and @Entity scanning is enabled.
2016-03-25 23:43:46.084  INFO 18169 --- [           main] j.LocalContainerEntityManagerFactoryBean : Building JPA container EntityManagerFactory for persistence unit 'default'
2016-03-25 23:43:46.136  INFO 18169 --- [           main] o.hibernate.jpa.internal.util.LogHelper  : HHH000204: Processing PersistenceUnitInfo [
    name: default
    ...]
2016-03-25 23:43:46.306  INFO 18169 --- [           main] org.hibernate.Version                    : HHH000412: Hibernate Core {4.3.11.Final}
2016-03-25 23:43:46.309  INFO 18169 --- [           main] org.hibernate.cfg.Environment            : HHH000206: hibernate.properties not found
2016-03-25 23:43:46.323  INFO 18169 --- [           main] org.hibernate.cfg.Environment            : HHH000021: Bytecode provider name : javassist
2016-03-25 23:43:47.042  INFO 18169 --- [           main] o.hibernate.annotations.common.Version   : HCANN000001: Hibernate Commons Annotations {4.0.5.Final}
2016-03-25 23:43:47.841  INFO 18169 --- [           main] org.hibernate.dialect.Dialect            : HHH000400: Using dialect: org.hibernate.dialect.MySQLDialect
2016-03-25 23:43:48.085  INFO 18169 --- [           main] o.h.h.i.ast.ASTQueryTranslatorFactory    : HHH000397: Using ASTQueryTranslatorFactory
2016-03-25 23:43:48.971  INFO 18169 --- [           main] org.hibernate.tool.hbm2ddl.SchemaUpdate  : HHH000228: Running hbm2ddl schema update
2016-03-25 23:43:48.972  INFO 18169 --- [           main] org.hibernate.tool.hbm2ddl.SchemaUpdate  : HHH000102: Fetching database metadata
2016-03-25 23:43:48.988  INFO 18169 --- [           main] org.hibernate.tool.hbm2ddl.SchemaUpdate  : HHH000396: Updating schema
2016-03-25 23:43:49.111  INFO 18169 --- [           main] o.hibernate.tool.hbm2ddl.TableMetadata   : HHH000261: Table found: movies.movie
2016-03-25 23:43:49.112  INFO 18169 --- [           main] o.hibernate.tool.hbm2ddl.TableMetadata   : HHH000037: Columns: [actor, id, title]
2016-03-25 23:43:49.112  INFO 18169 --- [           main] o.hibernate.tool.hbm2ddl.TableMetadata   : HHH000108: Foreign keys: []
2016-03-25 23:43:49.112  INFO 18169 --- [           main] o.hibernate.tool.hbm2ddl.TableMetadata   : HHH000126: Indexes: [primary]
2016-03-25 23:43:49.113  INFO 18169 --- [           main] org.hibernate.tool.hbm2ddl.SchemaUpdate  : HHH000232: Schema update complete
2016-03-25 23:43:50.698  INFO 18169 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup
2016-03-25 23:43:50.727 DEBUG 18169 --- [           main] utoConfigurationReportLoggingInitializer : 


=========================
AUTO-CONFIGURATION REPORT
=========================


Positive matches:
-----------------


   HazelcastJpaDependencyAutoConfiguration did not match
      - required @ConditionalOnClass classes not found: com.hazelcast.core.HazelcastInstance (OnClassCondition)

   HornetQAutoConfiguration did not match
      - required @ConditionalOnClass classes not found: javax.jms.ConnectionFactory,org.hornetq.api.jms.HornetQJMSClient (OnClassCondition)

   HttpEncodingAutoConfiguration did not match
      - required @ConditionalOnClass classes not found: org.springframework.web.filter.CharacterEncodingFilter (OnClassCondition)

   HypermediaAutoConfiguration did not match
      - required @ConditionalOnClass classes not found: org.springframework.hateoas.Resource,org.springframework.plugin.core.Plugin (OnClassCondition)

   InfinispanCacheConfiguration did not match
      - required @ConditionalOnClass classes not found: org.infinispan.spring.provider.SpringEmbeddedCacheManager (OnClassCondition)

   IntegrationAutoConfiguration did not match
      - required @ConditionalOnClass classes not found: org.springframework.integration.config.EnableIntegration (OnClassCondition)

   JCacheCacheConfiguration did not match
      - required @ConditionalOnClass classes not found: javax.cache.Caching,org.springframework.cache.jcache.JCacheCacheManager (OnClassCondition)

   JacksonAutoConfiguration.JodaDateTimeJacksonConfiguration did not match
      - required @ConditionalOnClass classes not found: org.joda.time.DateTime,com.fasterxml.jackson.datatype.joda.ser.DateTimeSerializer,com.fasterxml.jackson.datatype.joda.cfg.JacksonJodaDateFormat (OnClassCondition)

   JacksonAutoConfiguration.ParameterNamesModuleConfiguration did not match
      - required @ConditionalOnClass classes not found: com.fasterxml.jackson.module.paramnames.ParameterNamesModule (OnClassCondition)

   JacksonHttpMessageConvertersConfiguration.MappingJackson2XmlHttpMessageConverterConfiguration did not match
      - required @ConditionalOnClass classes not found: com.fasterxml.jackson.dataformat.xml.XmlMapper (OnClassCondition)

   JerseyAutoConfiguration did not match
      - required @ConditionalOnClass classes not found: org.glassfish.jersey.server.spring.SpringComponentProvider,javax.servlet.ServletRegistration (OnClassCondition)

   JmsAutoConfiguration did not match
      - required @ConditionalOnClass classes not found: org.springframework.jms.core.JmsTemplate (OnClassCondition)

   JndiConnectionFactoryAutoConfiguration did not match
      - required @ConditionalOnClass classes not found: org.springframework.jms.core.JmsTemplate (OnClassCondition)

   JndiDataSourceAutoConfiguration did not match
      - @ConditionalOnClass classes found: javax.sql.DataSource,org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType (OnClassCondition)
      - @ConditionalOnProperty missing required properties spring.datasource.jndi-name  (OnPropertyCondition)

   JndiJtaConfiguration did not match
      - @ConditionalOnClass classes found: org.springframework.transaction.jta.JtaTransactionManager (OnClassCondition)
      - JNDI environment is not available (OnJndiCondition)

   JooqAutoConfiguration did not match
      - required @ConditionalOnClass classes not found: org.jooq.DSLContext (OnClassCondition)

   JpaBaseConfiguration.JpaWebConfiguration did not match
      - @ConditionalOnClass classes found: org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter (OnClassCondition)
      - not a web application (OnWebApplicationCondition)

   LinkedInAutoConfiguration did not match
      - required @ConditionalOnClass classes not found: org.springframework.social.config.annotation.SocialConfigurerAdapter,org.springframework.social.linkedin.connect.LinkedInConnectionFactory (OnClassCondition)

   LiquibaseAutoConfiguration did not match
      - required @ConditionalOnClass classes not found: liquibase.integration.spring.SpringLiquibase (OnClassCondition)

   MailSenderAutoConfiguration did not match
      - required @ConditionalOnClass classes not found: javax.mail.internet.MimeMessage (OnClassCondition)

   MailSenderValidatorAutoConfiguration did not match
      - @ConditionalOnProperty missing required properties spring.mail.test-connection  (OnPropertyCondition)

   MessageSourceAutoConfiguration did not match
      - No bundle found for spring.messages.basename: messages (MessageSourceAutoConfiguration.ResourceBundleCondition)

   MongoAutoConfiguration did not match
      - required @ConditionalOnClass classes not found: com.mongodb.MongoClient (OnClassCondition)

   MongoDataAutoConfiguration did not match
      - required @ConditionalOnClass classes not found: com.mongodb.Mongo,org.springframework.data.mongodb.core.MongoTemplate (OnClassCondition)

   MongoRepositoriesAutoConfiguration did not match
      - required @ConditionalOnClass classes not found: com.mongodb.Mongo,org.springframework.data.mongodb.repository.MongoRepository (OnClassCondition)

   MultipartAutoConfiguration did not match
      - required @ConditionalOnClass classes not found: javax.servlet.Servlet,javax.servlet.MultipartConfigElement (OnClassCondition)

   MustacheAutoConfiguration did not match
      - required @ConditionalOnClass classes not found: com.samskivert.mustache.Mustache (OnClassCondition)

   OAuth2AutoConfiguration did not match
      - required @ConditionalOnClass classes not found: org.springframework.security.oauth2.common.OAuth2AccessToken (OnClassCondition)

   RabbitAutoConfiguration did not match
      - required @ConditionalOnClass classes not found: org.springframework.amqp.rabbit.core.RabbitTemplate,com.rabbitmq.client.Channel (OnClassCondition)

   ReactorAutoConfiguration did not match
      - required @ConditionalOnClass classes not found: reactor.spring.context.config.EnableReactor,reactor.Environment (OnClassCondition)

   RedisAutoConfiguration did not match
      - required @ConditionalOnClass classes not found: org.springframework.data.redis.connection.jedis.JedisConnection,org.springframework.data.redis.core.RedisOperations,redis.clients.jedis.Jedis (OnClassCondition)

   RepositoryRestMvcAutoConfiguration did not match
      - required @ConditionalOnClass classes not found: org.springframework.data.rest.webmvc.config.RepositoryRestMvcConfiguration (OnClassCondition)

   SecurityAutoConfiguration did not match
      - required @ConditionalOnClass classes not found: org.springframework.security.authentication.AuthenticationManager,org.springframework.security.config.annotation.authentication.configurers.GlobalAuthenticationConfigurerAdapter (OnClassCondition)

   SecurityFilterAutoConfiguration did not match
      - required @ConditionalOnClass classes not found: org.springframework.security.web.context.AbstractSecurityWebApplicationInitializer,org.springframework.security.config.http.SessionCreationPolicy (OnClassCondition)

   SendGridAutoConfiguration did not match
      - required @ConditionalOnClass classes not found: com.sendgrid.SendGrid (OnClassCondition)

   ServerPropertiesAutoConfiguration did not match
      - not a web application (OnWebApplicationCondition)

   SessionAutoConfiguration did not match
      - required @ConditionalOnClass classes not found: org.springframework.session.Session (OnClassCondition)

   SitePreferenceAutoConfiguration did not match
      - required @ConditionalOnClass classes not found: org.springframework.mobile.device.site.SitePreferenceHandlerInterceptor,org.springframework.mobile.device.site.SitePreferenceHandlerMethodArgumentResolver (OnClassCondition)

   SocialWebAutoConfiguration did not match
      - required @ConditionalOnClass classes not found: org.springframework.social.connect.web.ConnectController,org.springframework.social.config.annotation.SocialConfigurerAdapter (OnClassCondition)

   SolrAutoConfiguration did not match
      - required @ConditionalOnClass classes not found: org.apache.solr.client.solrj.impl.HttpSolrServer,org.apache.solr.client.solrj.impl.CloudSolrServer,org.apache.solr.common.cloud.HashPartitioner (OnClassCondition)

   SolrRepositoriesAutoConfiguration did not match
      - required @ConditionalOnClass classes not found: org.apache.solr.client.solrj.SolrServer,org.springframework.data.solr.repository.SolrRepository (OnClassCondition)

   SpringApplicationAdminJmxAutoConfiguration did not match
      - @ConditionalOnProperty missing required properties spring.application.admin.enabled  (OnPropertyCondition)

   SpringDataWebAutoConfiguration did not match
      - @ConditionalOnClass classes found: org.springframework.data.web.PageableHandlerMethodArgumentResolver,org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter (OnClassCondition)
      - not a web application (OnWebApplicationCondition)

   ThymeleafAutoConfiguration did not match
      - required @ConditionalOnClass classes not found: org.thymeleaf.spring4.SpringTemplateEngine (OnClassCondition)

   TwitterAutoConfiguration did not match
      - required @ConditionalOnClass classes not found: org.springframework.social.config.annotation.SocialConfigurerAdapter,org.springframework.social.twitter.connect.TwitterConnectionFactory (OnClassCondition)

   VelocityAutoConfiguration did not match
      - required @ConditionalOnClass classes not found: org.apache.velocity.app.VelocityEngine,org.springframework.ui.velocity.VelocityEngineFactory (OnClassCondition)

   WebMvcAutoConfiguration did not match
      - required @ConditionalOnClass classes not found: javax.servlet.Servlet,org.springframework.web.servlet.DispatcherServlet (OnClassCondition)

   WebSocketAutoConfiguration did not match
      - required @ConditionalOnClass classes not found: javax.servlet.Servlet,javax.websocket.server.ServerContainer (OnClassCondition)

   WebSocketMessagingAutoConfiguration did not match
      - required @ConditionalOnClass classes not found: org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer (OnClassCondition)

   XADataSourceAutoConfiguration did not match
      - @ConditionalOnClass classes found: javax.sql.DataSource,javax.transaction.TransactionManager,org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType (OnClassCondition)
      - @ConditionalOnBean (types: org.springframework.boot.jta.XADataSourceWrapper; SearchStrategy: all) found no beans (OnBeanCondition)


Exclusions:
-----------

    None


Unconditional classes:
----------------------

   org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfiguration

   org.springframework.boot.autoconfigure.context.ConfigurationPropertiesAutoConfiguration



2016-03-25 23:43:50.761  INFO 18169 --- [           main] o.i.InternetMovieDatabaseApplication     : Started InternetMovieDatabaseApplication in 11.476 seconds (JVM running for 14.426)
2016-03-25 23:43:50.774  INFO 18169 --- [       Thread-2] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@3738449f: startup date [Fri Mar 25 23:43:41 EET 2016]; root of context hierarchy
2016-03-25 23:43:50.789  INFO 18169 --- [       Thread-2] o.s.j.e.a.AnnotationMBeanExporter        : Unregistering JMX-exposed beans on shutdown
2016-03-25 23:43:50.790  INFO 18169 --- [       Thread-2] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'
Disconnected from the target VM, address: '127.0.0.1:40745', transport: 'socket'

Process finished with exit code 0

I try to start but after those outputs, it shuts down. I used spring initializr. I just want to make a small REST API.

This is my 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.infoowl</groupId>
    <artifactId>internetmoviedatabase</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>

    <name>InternetMovieDatabase</name>
    <description>Internet Movie Database Application</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.3.3.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <java.version>1.8</java.version>
    </properties>

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

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

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


</project>

this is application.properteis :

spring.datasource.url=jdbc:mysql://localhost:3306/movies
spring.datasource.username=root
spring.datasource.password=
spring.jpa.hibernate.ddl-auto=update
server.port=8181
spring.jpa.database=MYSQL
spring.jpa.show-sql=true

InternetMovieDatabaseApplication class:

package org.infoowl;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class InternetMovieDatabaseApplication {

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

ServletInitializer class:

package org.infoowl;

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.web.SpringBootServletInitializer;

public class ServletInitializer extends SpringBootServletInitializer {

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

}

These are the errors if i delete ServletInitializer :

2016-03-26 00:20:22.691 ERROR 20251 --- [           main] o.s.boot.SpringApplication               : Application startup failed

org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [org.infoowl.InternetMovieDatabaseApplication]; nested exception is java.lang.IllegalStateException: Failed to introspect annotated methods on class org.springframework.boot.context.web.SpringBootServletInitializer
    at org.springframework.context.annotation.ConfigurationClassParser.parse(Configurplication.java:1191) [spring-boot-1.3.3.RELEASE.jar:1.3.3.RELEASE]
    at o
Caused by: java.lang.IllegalStateException: Failed to introspect annotated methods on class org.springframework.boot.context.web.SpringBootServletInitializer
    at org.springframework.core.type.StandardAnnotationMetadata.getAnnotatedMethods(StandardAnnotationMetadata.java:163) ~[spring-core-4.2.5.RELEASE.jar:4.2.5.RELEASE]
    at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:292) ~[spring-context-4.2.5.RELEASE.jar:4.2.5.RELEASE]
    at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:232) ~[spring-context-4.2.5.RELEASE.jar:4.2.5.RELEASE]
    at E.jar:4.2.5.RELEASE]
    ... 12 common frames omitted
Caused by: java.lang.NoClassDefFoundError: javax/servlet/ServletContext
    at java.lang.Class.getDeclaredMethods0(Native Method) ~[na:1.8.0_74]
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) ~[na:1.8.0_74]
    at java.lang.Class.getDeclaredMethods(Class.java:1975) ~[na:1.8.0_74]
    at org.springframework.core.type.StandardAnnotationMetadata.getAnnotatedMethods(StandardAnnotationMetadata.java:152) ~[spring-core-4.2.5.RELEASE.jar:4.2.5.RELEASE]
    ... 16 common frames omitted
Caused by: java.lang.ClassNotFoundException: javax.servlet.ServletContext
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.IU-144.4199.23/lib/idea_rt.jar]
Disconnected from the target VM, address: '127.0.0.1:42011', transport: 'socket'

Process finished with exit code 1

I don't see anything glaringly wrong with what you have. I have an app that I deploy both as a jar and war simultaneously in different environments (they differ only by packaging); I have a ServletInitializer equivalent to yours and it works without issue with one primary difference.

I use a maven run configuration with spring-boot:run as the "Command line" value. With that I can do no more than change the pom to reflect jar or war, run, and go. I've faced problems when switching back and forth and using a config that invokes main in the app class. For example, just for fun I just ran an instance of the app with jar packaging and running main . Wouldn't even launch. This is just after having it jar packaged and launched using the maven config I mentioned above.

I would recommend starting with creating that maven run configuration and see what the results are. Here's the way to do it in Intellij so you don't have to use the command line interface.

  1. Choose "Edit configurations..." from the dropdown next to the play button.
  2. Press the green + in the upper left-hand corner.
  3. Choose to create a maven configuration.
  4. Name it.
  5. Add spring-boot:run to the "Command line" entry.
  6. Optionally, make it "Share"d or "Single instance only".

I'm not an eclipse/sts user but I'm sure there's a similar way to do it.

Although an answer has been accepted, still this might help:

Are you trying to run the application from Intellij from Run menu or by right click and run on the class where your main is defined and you are getting above issue and the application works fine from command line?

If above is the case, I see your pom.xml have dependency with provided scope.

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

When running the application from run menu in intellij, dependencies with provided scope are not available by default.

To fix this,

Go to Run Menu -> Edit Configuations and then select Include dependencies with provided scope

Image for reference:

在此处输入图片说明

And try to run again. This should fix the issue.

Good luck.

Apparently, you're going to package your application as war , that's fine but the problem is that you're running your application through the main method in InternetMovieDatabaseApplication class. Instead, you should either deploy your application to a Standalone Servlet Container , like Tomcat or Jetty , or run the application using the mvn spring-boot:run command.

If packaging your application as war archive is not a strict requirement, i recommend to make jar, not war . In order to doing so, first remove the packaging in your pom.xml :

<packaging>war</packaging>

Then remove the spring-boot-starter-tomcat dependency:

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

And finally remove the ServletInitializer class and run the main method in your InternetMovieDatabaseApplication class.

I don't think you need your ServletInitializer

your InternetMovieDatabaseApplication with the @SpringBootApplication annotation should be sufficient.

I was having this problem, it was fixed by removing this dependency:

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>4.1.6.RELEASE</version>
    </dependency>

I think you forgot add main-class in properties your pom.xml

<properties>
    <start-class>org.infoowl.InternetMovieDatabaseApplication</start-class>
    <java.version>1.8</java.version>
</properties>

and modify your class as follow:

@SpringBootApplication
public class InternetMovieDatabaseApplication extends SpringBootServletInitializer {
   @Override
   protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
      return application.sources(DemoApplication.class);
   }
    public static void main(String[] args) {
        SpringApplication.run(InternetMovieDatabaseApplication.class, args);
    }
}

and open a command console, execute:

mvn clean package

then, deploy war into Tomcat, demo here

在此处输入图片说明

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM