从SB 2.2.7升级到SB 2.3.0后,Spring Boot应用程序将无法启动

问题描述 投票:0回答:1

我使用Java 8,Spring Boot和Hibernate Search,看起来应用程序启动在Lucene索引初始化时停止了。试图使用以前使用SB 2.2.7构建的索引文件,但未成功。还尝试删除Lucene制作的所有文件,并重新启动,但没有成功。尽管我将所有内容都放入了跟踪日志级别,但日志中没有任何内容可以帮助您查找正在发生的情况。

请参阅pom.xml和下面的最后几行日志。如果需要,我可以提供完整的跟踪日志。

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>com.thevegcat</groupId>
    <artifactId>TheVegCat</artifactId>
    <version>0.4.0-SNAPSHOT</version>
    <packaging>war</packaging>

    <name>The Vegan Catalog</name>
    <description>The Best World Vegan Catalog by H.Lo</description>

    <developers>
        <developer>
            <id>HLo</id>
            <name>Hrvoje Lončar</name>
            <email>[email protected]</email>
        </developer>
    </developers>

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

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <hibernate.version>5.4.16.Final</hibernate.version>
        <groovy-all.version>3.0.4</groovy-all.version>
        <junit-jupiter.version>5.6.2</junit-jupiter.version>
        <tika-core.version>1.24.1</tika-core.version>
        <jsoup.version>1.13.1</jsoup.version>
        <hibernate-search-orm.version>5.11.5.Final</hibernate-search-orm.version>
        <opencsv.version>5.2</opencsv.version>
        <org.eclipse.jdt.annotation.version>2.2.400</org.eclipse.jdt.annotation.version>
        <jacoco.version>0.8.5</jacoco.version>
        <junit-platform-surefire-provider.version>1.3.2</junit-platform-surefire-provider.version>
        <commons-io.version>2.6</commons-io.version>
        <urlrewritefilter.version>4.0.4</urlrewritefilter.version>
        <json-simple.version>1.1.1</json-simple.version>
    </properties>

    <dependencies>

        <dependency>
            <groupId>jakarta.validation</groupId>
            <artifactId>jakarta.validation-api</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>junit</groupId>
                    <artifactId>junit</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </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-cache</artifactId>
        </dependency>

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

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

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy-all</artifactId>
            <version>${groovy-all.version}</version>
            <type>pom</type>
            <exclusions>
                <exclusion>
                    <groupId>junit</groupId>
                    <artifactId>junit</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
           <groupId>org.hibernate</groupId>
           <artifactId>hibernate-search-orm</artifactId>
           <version>${hibernate-search-orm.version}</version>
        </dependency>

        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>${commons-io.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.tika</groupId>
            <artifactId>tika-core</artifactId>
            <version>${tika-core.version}</version>
        </dependency>

        <dependency>
            <groupId>org.thymeleaf.extras</groupId>
            <artifactId>thymeleaf-extras-springsecurity5</artifactId>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

        <dependency>
            <groupId>javax.persistence</groupId>
            <artifactId>javax.persistence-api</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
        </dependency>

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

        <dependency>
            <groupId>org.tuckey</groupId>
            <artifactId>urlrewritefilter</artifactId>
            <version>${urlrewritefilter.version}</version>
        </dependency>

        <dependency>
            <groupId>org.eclipse.jdt</groupId>
            <artifactId>org.eclipse.jdt.annotation</artifactId>
            <version>${org.eclipse.jdt.annotation.version}</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>${jsoup.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>junit</groupId>
                    <artifactId>junit</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>io.rest-assured</groupId>
            <artifactId>rest-assured</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.junit.platform</groupId>
            <artifactId>junit-platform-launcher</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-junit-jupiter</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>com.opencsv</groupId>
            <artifactId>opencsv</artifactId>
            <version>${opencsv.version}</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>com.googlecode.json-simple</groupId>
            <artifactId>json-simple</artifactId>
            <version>${json-simple.version}</version>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>junit</groupId>
                    <artifactId>junit</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <scope>test</scope>
        </dependency>

    </dependencies>

    <build>

        <plugins>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <dependencies>

                    <dependency>
                        <groupId>org.junit.platform</groupId>
                        <artifactId>junit-platform-surefire-provider</artifactId>
                        <version>${junit-platform-surefire-provider.version}</version>
                    </dependency>

                </dependencies>
            </plugin>

            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <version>${jacoco.version}</version>
                <executions>

                    <execution>
                        <id>prepare-agent</id>
                        <goals>
                            <goal>prepare-agent</goal>
                        </goals>
                    </execution>

                    <execution>
                        <id>report</id>
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>report</goal>
                        </goals>
                    </execution>

                    <execution>
                        <id>post-unit-test</id>
                        <phase>test</phase>
                        <goals>
                            <goal>report</goal>
                        </goals>
                        <configuration>
                            <dataFile>target/jacoco.exec</dataFile>
                            <outputDirectory>target/jacoco-ut</outputDirectory>
                        </configuration>
                    </execution>

                </executions>
                <configuration>
                    <systemPropertyVariables>
                        <jacoco-agent.destfile>target/jacoco.exec</jacoco-agent.destfile>
                    </systemPropertyVariables>
                </configuration>
            </plugin>

        </plugins>

    </build>

</project>

日志中的最后几行:

DEBUG org.hibernate.type.EnumType                                                                          Using NAMED-based conversion for Enum com.thevegcat.app.config.UserRole
TRACE org.hibernate.engine.jdbc.env.internal.NormalizingIdentifierHelperImpl                               Normalizing identifier quoting for object name [veg_user]
TRACE org.hibernate.engine.jdbc.env.internal.NormalizingIdentifierHelperImpl                               Rendering unquoted identifier [veg_user] in lower case for use in DatabaseMetaData
TRACE org.hibernate.engine.jdbc.env.internal.NormalizingIdentifierHelperImpl                               Normalizing identifier quoting for object name [id]
TRACE org.hibernate.engine.jdbc.env.internal.NormalizingIdentifierHelperImpl                               Rendering unquoted identifier [id] in lower case for use in DatabaseMetaData
TRACE org.hibernate.engine.jdbc.env.internal.NormalizingIdentifierHelperImpl                               Normalizing identifier quoting for object name [date_created]
TRACE org.hibernate.engine.jdbc.env.internal.NormalizingIdentifierHelperImpl                               Rendering unquoted identifier [date_created] in lower case for use in DatabaseMetaData
TRACE org.hibernate.engine.jdbc.env.internal.NormalizingIdentifierHelperImpl                               Normalizing identifier quoting for object name [date_last_update]
TRACE org.hibernate.engine.jdbc.env.internal.NormalizingIdentifierHelperImpl                               Rendering unquoted identifier [date_last_update] in lower case for use in DatabaseMetaData
TRACE org.hibernate.engine.jdbc.env.internal.NormalizingIdentifierHelperImpl                               Normalizing identifier quoting for object name [failed_login_attempts]
TRACE org.hibernate.engine.jdbc.env.internal.NormalizingIdentifierHelperImpl                               Rendering unquoted identifier [failed_login_attempts] in lower case for use in DatabaseMetaData
TRACE org.hibernate.engine.jdbc.env.internal.NormalizingIdentifierHelperImpl                               Normalizing identifier quoting for object name [name]
TRACE org.hibernate.engine.jdbc.env.internal.NormalizingIdentifierHelperImpl                               Rendering unquoted identifier [name] in lower case for use in DatabaseMetaData
TRACE org.hibernate.engine.jdbc.env.internal.NormalizingIdentifierHelperImpl                               Normalizing identifier quoting for object name [note]
TRACE org.hibernate.engine.jdbc.env.internal.NormalizingIdentifierHelperImpl                               Rendering unquoted identifier [note] in lower case for use in DatabaseMetaData
TRACE org.hibernate.engine.jdbc.env.internal.NormalizingIdentifierHelperImpl                               Normalizing identifier quoting for object name [password]
TRACE org.hibernate.engine.jdbc.env.internal.NormalizingIdentifierHelperImpl                               Rendering unquoted identifier [password] in lower case for use in DatabaseMetaData
TRACE org.hibernate.engine.jdbc.env.internal.NormalizingIdentifierHelperImpl                               Normalizing identifier quoting for object name [phone]
TRACE org.hibernate.engine.jdbc.env.internal.NormalizingIdentifierHelperImpl                               Rendering unquoted identifier [phone] in lower case for use in DatabaseMetaData
TRACE org.hibernate.engine.jdbc.env.internal.NormalizingIdentifierHelperImpl                               Normalizing identifier quoting for object name [status]
TRACE org.hibernate.engine.jdbc.env.internal.NormalizingIdentifierHelperImpl                               Rendering unquoted identifier [status] in lower case for use in DatabaseMetaData
DEBUG org.hibernate.type.EnumType                                                                          Using NAMED-based conversion for Enum com.thevegcat.app.user.User$Status
TRACE org.hibernate.engine.jdbc.env.internal.NormalizingIdentifierHelperImpl                               Normalizing identifier quoting for object name [time_zone_id]
TRACE org.hibernate.engine.jdbc.env.internal.NormalizingIdentifierHelperImpl                               Rendering unquoted identifier [time_zone_id] in lower case for use in DatabaseMetaData
TRACE org.hibernate.engine.jdbc.env.internal.NormalizingIdentifierHelperImpl                               Normalizing identifier quoting for object name [username]
TRACE org.hibernate.engine.jdbc.env.internal.NormalizingIdentifierHelperImpl                               Rendering unquoted identifier [username] in lower case for use in DatabaseMetaData
TRACE org.hibernate.service.internal.AbstractServiceRegistryImpl                                           Initializing service [role=org.hibernate.engine.transaction.jta.platform.spi.JtaPlatform]
INFO  org.hibernate.engine.transaction.jta.platform.internal.JtaPlatformInitiator                          HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]
DEBUG org.hibernate.query.spi.NamedQueryRepository                                                         Checking 0 named HQL queries
DEBUG org.hibernate.query.spi.NamedQueryRepository                                                         Checking 0 named SQL queries
TRACE org.hibernate.search.util.configuration.impl.MaskedProperty                                          found a match for key: [hibernate.search.default.directory_provider] value: filesystem
TRACE org.hibernate.search.util.configuration.impl.MaskedProperty                                          found a match for key: [default.directory_provider] value: filesystem
TRACE org.hibernate.search.util.configuration.impl.MaskedProperty                                          found a match for key: [hibernate.search.default.indexBase] value: F:/storage/lucene
TRACE org.hibernate.search.util.configuration.impl.MaskedProperty                                          found a match for key: [default.indexBase] value: F:/storage/lucene
INFO  org.hibernate.search.store.impl.DirectoryProviderHelper                                              HSEARCH000041: Index directory not found, creating: 'F:\storage\lucene\com.thevegcat.app.manufacturer.Manufacturer'
DEBUG org.hibernate.search.store.impl.DirectoryProviderHelper                                              Initialize index: 'F:\storage\lucene\com.thevegcat.app.manufacturer.Manufacturer'
DEBUG org.hibernate.search.backend.impl.lucene.WorkspaceFactory                                            Starting workspace for index com.thevegcat.app.manufacturer.Manufacturer using an exclusive index strategy
DEBUG org.hibernate.search.backend.impl.lucene.SyncWorkProcessor                                           HSEARCH000230: Starting sync consumer thread for index 'com.thevegcat.app.manufacturer.Manufacturer'
DEBUG org.hibernate.search.backend.impl.lucene.WorkspaceHolder                                             HSEARCH000235: Backend for index 'com.thevegcat.app.manufacturer.Manufacturer' started: using a Synchronous batching backend.
WARN  org.hibernate.search.indexes.impl.LuceneEmbeddedIndexFamilyImpl                                      HSEARCH000075: Configuration setting hibernate.search.lucene_version was not specified: using LUCENE_CURRENT.
DEBUG org.hibernate.annotations.common.util.StandardClassLoaderDelegateImpl                                Unable to locate Class [com.thevegcat.app.manufacturer.package-info] using TCCL, falling back to HCANN ClassLoader
DEBUG org.hibernate.search.engine.metadata.impl.AnnotationMetadataProvider                                 package-info not found for package 'com.thevegcat.app.manufacturer'
java spring spring-boot lucene hibernate-search
1个回答
0
投票

从Spring Boot 2.3.0开始,使用the default BootstrapMode for JPA repositories is now "deferred"以缩短启动时间。

[不幸的是,我们发现这在Hibernate Search中可能会产生副作用;有一个BootstrapMode。随时订阅此问题以进行进一步更新。

同时,您可以使用以下配置属性还原为以前的默认值:

opened issue against Spring Framework that looks very similar to your project

对不起,您遇到了这个问题-希望您的其余升级体验都完美无缺!

© www.soinside.com 2019 - 2024. All rights reserved.