Spring: не удалось запустить приложение: не удалось связать свойства - PullRequest
0 голосов
/ 24 октября 2019

Я новичок в бэкэнд-разработке, и мне тяжело отследить эту проблему. Другие решения этой проблемы включают синтаксические ошибки в самом файле свойств, но я думаю, что мой в порядке.

Моя команда унаследовала приложение Spring Boot, и при настройке и запуске я единственный, чье приложение не удалось запустить. Может ли быть что-то в моей настройке, что вызывает эту проблему привязки?

***************************
APPLICATION FAILED TO START
***************************

Description:

Failed to bind properties under 'abc.def-port' to int:

Property: abc.defport
Value: ###DEF_PORT###
Origin: "abc.defPort" from property source "class path resource [ def.properties]"
Reason: failed to convert java.lang.String to int

Action:

Update your application's configuration
, , THREAD_ID=main, STACK_TRACE=]

Вот мой Application.java файл, который указывает на этот файл конфигурации:

@SpringBootApplication
@PropertySource({ "classpath:application.properties", 
"classpath:def.properties" })
@EnableMonitoring
@EnableAutoConfiguration(exclude = { DataSourceAutoConfiguration.class 
})
@EnableDEF
public class Application extends SpringBootServletInitializer
{
    public static void main(String[] args)
    {
        SpringApplication.run(Application.class, args);
    }

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

А вот мой def.properties файл:

#abc.defHost=my-content-def-test.company.com
#abc.defPort=443

abc.defHost=###DEF_HOST###
abc.defPort=###DEF_PORT###

Свойства хоста и порта определены в другом файле, например так:

DEF_HOST=my-content-def-test.company.com
DEF_PORT=443

Что здесь не так, что только мое приложение не будет работать локально? Спасибо за любые полезные советы.

********* ============== ОБНОВЛЕНИЕ ========== ************ ********* РАБОТАЕТ НИЖЕ РЕШЕНИЕ ***********************

Профиль сборки в моем pom.xml использует Windows, и я единственный на Mac:

<profile>
        <id>dev</id>
        <activation>
            <os>
                <family>windows</family>
            </os>
        </activation>
        <properties>
            <hostname>${env.COMPUTERNAME}</hostname>
            <toggleDevelopmentFiltering>true</toggleDevelopmentFiltering>
        </properties>
        <build>
            <filters>
                <filter>${dev-resources.dir}/master_file.DVLP</filter>
                <filter>${dev-resources.dir}/secure_file.DVLP</filter>
            </filters>
            <resources>
                <resource>
                    <directory>src/main/resources</directory>
                    <filtering>true</filtering>
                </resource>
            </resources>
            <plugins>
                <plugin>
                    <artifactId>maven-resources-plugin</artifactId>
                    <configuration>
                        <delimiters>
                            <delimiter>###</delimiter>
                        </delimiters>
                        <useDefaultDelimiters>false</useDefaultDelimiters>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </profile>

Должен ли я просто создать новый профиль, подобный этому:

<profile>
        <id>dev-mac</id>
        <activation>
            <os>
                <family>mac</family>
            </os>
        </activation>
        <properties>
            <hostname>${env.COMPUTERNAME}</hostname>
            <toggleDevelopmentFiltering>true</toggleDevelopmentFiltering>
        </properties>
        <build>
            <filters>
                <filter>${dev-resources.dir}/master_file.DVLP</filter>
                <filter>${dev-resources.dir}/secure_file.DVLP</filter>
            </filters>
            <resources>
                <resource>
                    <directory>src/main/resources</directory>
                    <filtering>true</filtering>
                </resource>
            </resources>
            <plugins>
                <plugin>
                    <artifactId>maven-resources-plugin</artifactId>
                    <configuration>
                        <delimiters>
                            <delimiter>###</delimiter>
                        </delimiters>
                        <useDefaultDelimiters>false</useDefaultDelimiters>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </profile>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...