Приложение Spring boot не запускается

#java #mysql #spring #hibernate #maven

#java #mysql #весна #спящий режим #maven

Вопрос:

У меня есть приложение Spring Boot, которое мы устанавливаем на несколько небольших серверов для наших продуктов. Это всегда работало. Сегодня вечером мы установили его на один из наших серверов, и оно не запустилось.

Каждый сервер представляет собой образ из общего образа, поэтому ОС одинакова.

Когда мы запускаем файл .jar, мы получаем:

 Oct 05, 2016 11:16:45 AM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Tomcat
Oct 05, 2016 11:16:45 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/8.5.5
Oct 05, 2016 11:16:46 AM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring embedded WebApplicationContext
Oct 05, 2016 11:17:03 AM org.apache.catalina.core.StandardService stopInternal
INFO: Stopping service Tomcat
  

Это наше application.properties, которое относится к спящему режиму

 # Username and password
spring.datasource.username = parkuser
spring.datasource.password = xxxxxxxxxxxxxxxxxxxxxx
spring.datasource.url= jdbc:mysql://xxxxxxxxxxxxxxxxxxxxxxxxx:3306/SMARTPARK?useSSL=false

# Keep the connection alive if idle for a long time (needed in production)
spring.datasource.testWhileIdle = true
spring.datasource.validationQuery = SELECT 1
spring.jpa.show-sql = false

# Hibernate ddl auto (create, create-drop, update): with "update" the database
# schema will be automatically updated accordingly to java entities found in
# the project
spring.jpa.hibernate.ddl-auto = update

# Naming strategy
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy

# Allows Hibernate to generate SQL optimized for a particular DBMS
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQLDialect
spring.jpa.properties.hibernate.current_session_context_class=org.springframework.orm.hibernate4.SpringSessionContext
  

В нашем pom.xml у нас есть

 <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.1.RELEASE</version>
    </parent>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j</artifactId>
            <version>1.3.8.RELEASE</version>
        </dependency>
        <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-data-rest</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>

        </dependency>
  

Это наш StartServer.class

 @SpringBootApplication
@EnableScheduling
public class StartServer extends SpringBootServletInitializer{
    public static void main(String[] args){

        SpringApplication.run(StartServer.class, args);

    }


    @Bean
    public HibernateJpaSessionFactoryBean sessionFactory() {
        return new HibernateJpaSessionFactoryBean();
    }
}
  

Я не могу понять, почему один и тот же jar работает на устройстве и выдает эту ошибку в другом, и я не могу понять, в чем ошибка…

Комментарии:

1. Имеет ли этот сервер ту же версию Java, что и другие? В pom у вас есть зависимость mysql-connector, но я думаю, что он не может загрузить эту зависимость, поэтому он не может определить, к какой базе данных подключиться. Вероятно, такое поведение связано с версией java

2. каждый сервер создан из одного и того же образа…

3. есть ли проблема с разрешением на подключение к базе данных? имя пользователя / пароль или сеть? возможно, будет невозможно обнаружить несколько вещей, поскольку соединение не работает.

4. Вы поместили URL-адрес и имя класса драйвера в раздел spring.datasource? Можете ли вы поделиться этой частью application.properties

5. Отредактировал вопрос, чтобы добавить другие свойства

Ответ №1:

Я столкнулся с той же проблемой. Затем после очистки моего локального репозитория maven приложение было запущено и запущено. Очистите свой локальный репозиторий maven (из-за поврежденной зависимости) и повторите попытку!

Ответ №2:

Я не уверен на 100%, но я бы заменил это :

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

С помощью этого:

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

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
...
 </dependencies>
  

См. Пример ниже :

 <groupId>org.springframework</groupId>
    <artifactId>gs-relational-data-access</artifactId>
    <version>0.1.0</version>

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

    <properties>
        ....
    </properties>

    <dependencies>

        <dependency>
           ....
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>[5,]</version>
        </dependency>
    </dependencies>
  

или же просто сделайте это :

 <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>your version</version>
            </dependency> 
  

Комментарии:

1. Можете ли вы запустить простое приложение Spring boot на этом сервере? попробуйте одно из доступных приложений здесь: spring.io/guides

2. или запустите щедрость

Ответ №3:

Если в вашем проекте отсутствует файл application.properties, то вы также столкнетесь с такой проблемой. проверьте его доступность в вашем пути к классу.