Spring Boot无法识别application.properties文件 [英] Spring Boot not recognizing application.properties file

查看:612
本文介绍了Spring Boot无法识别application.properties文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用Spring Boot配置DynamoDb客户端,并将端点和配置信息放在我的resources/application.properties文件中.但是,Spring Boot似乎并没有选择这些属性.它确实提取了我存储在同一文件中的"server.default"键,因此肯定可以识别文件本身.

这是我的application.properties文件,以及我正在尝试将属性加载到( DynamoDBClientMapper )的类:

  amazon.dynamodb.endpoint = http://localhost:8000/amazon.dynamodb.region = us-west-1amazon.aws.accesskey =键amazon.aws.secretkey =键2server.port = 8080 

这是我的项目结构:

这是我要加载属性的相关类.我尝试了使用新属性文件以及 EnableAutoConfiguration @PropertySource 批注,但是都没有注册属性文件.

  @PropertySource("database.properties")公共类DynamoClientMapper {@Value("$ {amazon.dynamodb.endpoint}")私有字符串amazonDynamoDBEndpoint;@Value("$ {amazon.aws.accesskey}")私有字符串amazonAWSAccessKey;@Value("$ {amazon.aws.secretkey}")私有字符串amazonAWSSecretKey;@Value("$ {amazon.aws.region}")私有String amazonAWSRegion; 

这是我的App.java:

  @SpringBootApplication@EnableAutoConfiguration(排除= {DataSourceAutoConfiguration.class})公共类应用{//私有静态最终Logger logger = Logger.getLogger(App.class.toString());公共静态void main(String [] args){SpringApplication.run(App.class,args);}} 

这是堆栈跟踪:

  org.springframework.beans.factory.BeanCreationException:在文件[C:\ Users \ ychen4 \ Desktop \ DiningApplication \ target \ classes \ main \ java \ com \ dining中创建名称为'dynamoClientMapper'的bean时出错\ dao \ DynamoClientMapper.class]:实例化bean失败;嵌套的异常是org.springframework.beans.BeanInstantiationException:无法实例化[main.java.com.dining.dao.DynamoClientMapper $$ EnhancerBySpringCGLIB $$ f4ba10ad]:构造函数引发了异常;嵌套异常为java.lang.IllegalArgumentException:端点不能为null在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1155)〜[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1099)〜[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)〜[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)〜[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]在org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:306)〜[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]在org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)〜[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]在org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)〜[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]在org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)〜[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]在org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761)〜[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]在org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)〜[spring-context-4.3.7.RELEASE.jar:4.3.7.RELEASE]在org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)〜[spring-context-4.3.7.RELEASE.jar:4.3.7.RELEASE]在org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)〜[spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]在org.springframework.boot.SpringApplication.refresh(SpringApplication.java:737)上[spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]在org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:370)上[spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]在org.springframework.boot.SpringApplication.run(SpringApplication.java:314)上[spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]在org.springframework.boot.SpringApplication.run(SpringApplication.java:1162)[spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]在org.springframework.boot.SpringApplication.run(SpringApplication.java:1151)[spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]在main.java.com.dining.App.main(App.java:18)[classes/:na]在sun.reflect.NativeMethodAccessorImpl.invoke0(本地方法)处〜[na:1.8.0_121]在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)〜[na:1.8.0_121]在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)〜[na:1.8.0_121]在java.lang.reflect.Method.invoke(Method.java:498)〜[na:1.8.0_121]在org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49)[spring-boot-devtools-1.5.2.RELEASE.jar:1.5.2.RELEASE]引起原因:org.springframework.beans.BeanInstantiationException:无法实例化[main.java.com.dining.dao.DynamoClientMapper $$ EnhancerBySpringCGLIB $$ f4ba10ad]:构造函数引发了异常;嵌套异常为java.lang.IllegalArgumentException:端点不能为null在org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:154)〜[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]在org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89)〜[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1147)〜[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]...省略了22个通用框架原因:java.lang.IllegalArgumentException:端点不能为null在com.amazonaws.util.RuntimeHttpUtils.toUri(RuntimeHttpUtils.java:182)〜[aws-java-sdk-core-1.11.125.jar:na]在com.amazonaws.util.RuntimeHttpUtils.toUri(RuntimeHttpUtils.java:171)〜[aws-java-sdk-core-1.11.125.jar:na]在com.amazonaws.AmazonWebServiceClient.toURI(AmazonWebServiceClient.java:238)〜[aws-java-sdk-core-1.11.125.jar:na]在com.amazonaws.AmazonWebServiceClient.setEndpoint(AmazonWebServiceClient.java:228)〜[aws-java-sdk-core-1.11.125.jar:na]在com.amazonaws.client.builder.AwsClientBuilder.setRegion(AwsClientBuilder.java:362)〜[aws-java-sdk-core-1.11.125.jar:na]在com.amazonaws.client.builder.AwsClientBuilder.configureMutableProperties(AwsClientBuilder.java:337)〜[aws-java-sdk-core-1.11.125.jar:na]在com.amazonaws.client.builder.AwsSyncClientBuilder.build(AwsSyncClientBuilder.java:46)〜[aws-java-sdk-core-1.11.125.jar:na]在main.java.com.dining.dao.DynamoClientMapper.< init>(DynamoClientMapper.java:32)〜[classes/:na]在main.java.com.dining.dao.DynamoClientMapper $$ EnhancerBySpringCGLIB $$ f4ba10ad.< init>(< generate>)〜[classes/:na]在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)〜[na:1.8.0_121]在sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)〜[na:1.8.0_121]在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)〜[na:1.8.0_121]在java.lang.reflect.Constructor.newInstance(Constructor.java:423)〜[na:1.8.0_121]在org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:142)〜[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]...省略了24个通用框架 

我尝试制作另一个单独的database.properties文件,但是Spring Boot也不认识到这一点.我在做什么错了?

解决方案

您可以尝试在pom.xml文件的build部分中定义资源标签.设置资源目录的路径,该目录为 application.properties

 < build><资源><资源><目录>资源</目录>< targetPath> $ {project.build.outputDirectory}</targetPath>< includes>< include> application.properties</include></includes></resource></resources></build> 

资源链接:

查看所有页面,如下所示: http://localhost:8080/api/reviews

[{"id":1,"userName":"ychennay","reviewText":这家餐厅很棒!"},{"id":2,"userName":"david","reviewText":这家餐厅还行!},{" id:3," userName:" ben," reviewText:"这家餐厅平庸!},{" id:4," userName:" leon," reviewText:"这家餐厅太糟糕了!},{" id:5," userName:" lawrence," reviewText:"这里餐厅令人困惑!}]

因此替换您的pom.xml

 <项目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.diningapp</groupId>< artifactId>餐厅</artifactId>< version> 0.0.1-SNAPSHOT</version>< packaging> war</packaging><属性>< jackson.version> 2.7.5</jackson.version>< spring-version> 4.3.7.发布</spring-version>< dynamodb-local.port> 8000</dynamodb-local.port>< dynamodb-local.endpoint> http://localhost:$ {dynamodb-local.port}</dynamodb-local.endpoint>< spring-boot-version> 1.5.2.RELEASE</spring-boot-version>< aws-sdk-java-version> 1.11.124</aws-sdk-java-version>< project.build.sourceEncoding> UTF-8</project.build.sourceEncoding><!-对于UTF-8支持->< project.reporting.outputEncoding> UTF-8</project.reporting.outputEncoding><!-对于UTF-8支持-></properties>< build>< sourceDirectory> src</sourceDirectory>< plugins>< plugin>< artifactId> maven-compiler-plugin</artifactId>< version> 3.5.1</version><配置>< source> 1.7</source><!-使用了java7->< target> 1.7</target><!-使用了java7-></configuration></plugin>< plugin>< groupId> org.springframework.boot</groupId>< artifactId> spring-boot-maven-plugin</artifactId>< version> $ {spring-boot-version}</version><执行><执行><目标>< goal>重新包装</goal></goals></execution></executions></plugin>< plugin>< artifactId> maven-war-plugin</artifactId>< version> 3.0.0</version><配置>< warSourceDirectory> WebContent</warSourceDirectory></configuration></plugin></plugins></build><存储库><存储库>dynamodb-local-oregon</id>< name> DynamoDB本地发行版存储库</name>< url> https://s3-us-west-2.amazonaws.com/dynamodb-local/release</url></存储库></存储库><依赖关系><依赖关系>< groupId> org.springframework.data</groupId>< artifactId> spring-data-releasetrain</artifactId>< Hopper-SR10</version>< type> pom</type><!-< scope> import</scope>->< scope>提供的</scope></dependency><依赖关系>< groupId> org.springframework.boot</groupId>< artifactId> spring-boot-devtools</artifactId>< version> $ {spring-boot-version}</version><!-您错过了添加此版本的时间->< optional> true</optional></dependency><依赖关系>< groupId> org.springframework.boot</groupId>< artifactId>弹簧启动配置处理器</artifactId>< version> $ {spring-boot-version}</version><!-您错过了添加此版本的时间->< optional> true</optional></dependency>< ;!-https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web-><依赖关系>< groupId> org.springframework.boot</groupId>< artifactId> spring-boot-starter-web</artifactId>< version> $ {spring-boot-version}</version></dependency><依赖关系>< groupId> com.amazonaws</groupId>< artifactId> aws-java-sdk-dynamodb</artifactId>< version> $ {aws-sdk-java-version}</version></dependency><依赖关系>< groupId> com.github.derjust</groupId>< artifactId> spring-data-dynamodb</artifactId>< version> 4.3.1</version></dependency><依赖关系>< groupId> com.amazonaws</groupId>< artifactId> aws-java-sdk-bom</artifactId>< version> $ {aws-sdk-java-version}</version>< type> pom</type><!-< scope> import</scope>->< scope>提供的</scope><!-将导入更改为提供的-></dependency><依赖关系>< groupId> org.springframework.boot</groupId>< artifactId> spring-boot-starter-tomcat</artifactId>< version> $ {spring-boot-version}</version></dependency><依赖关系>< groupId> org.springframework</groupId>< artifactId> spring-context</artifactId>< version> $ {spring-version}</version></dependency><依赖关系>< groupId> org.springframework</groupId>< artifactId> spring-core</artifactId>< version> $ {spring-version}</version></dependency><依赖关系>< groupId> org.springframework</groupId>< artifactId> spring-web</artifactId>< version> $ {spring-version}</version></dependency><依赖关系>< groupId> org.springframework</groupId>< artifactId> spring-webmvc</artifactId>< version> $ {spring-version}</version></dependency><依赖关系>< groupId> jstl</groupId>< artifactId> jstl</artifactId>< version> 1.2</version></dependency><依赖关系>< groupId> org.springframework</groupId>< artifactId> spring-beans//artifactId>< version> $ {spring-version}</version></dependency><依赖关系>< groupId> com.fasterxml.jackson.core</groupId>< artifactId> jackson-databind</artifactId>< version> $ {jackson.version}</version></dependency><!-https://mvnrepository.com/artifact/mysql/mysql-connector-java-><依赖关系>< groupId> mysql</groupId>< artifactId> mysql-connector-java</artifactId>< version> 5.1.38</version><!-您错过了添加此版本的时间-></dependency>< ;!-https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-security-><依赖关系>< groupId> org.springframework.boot</groupId>< artifactId> spring-boot-starter-security</artifactId>< version> $ {spring-boot-version}</version></dependency><依赖关系>< groupId> javax.servlet</groupId>< artifactId> javax.servlet-api</artifactId>< version> 3.0.1</version>< scope>提供的</scope></dependency><依赖关系>< groupId> org.projectlombok</groupId>< artifactId> lombok</artifactId>< version> 1.16.10</version>< scope>提供的</scope></dependency></dependencies></project> 

错误和解决方案:

问题1:

[警告] org.springframework.data:spring-data-releasetrain:pom的'dependencies.dependency.scope'必须是以下项之一[提供,编译,运行时,测试,系统],但为导入".@第70行,第18栏

解决方案#1:

 < dependency>< groupId> org.springframework.data</groupId>< artifactId> spring-data-releasetrain</artifactId>< Hopper-SR10< version>< type> pom</type><!-< scope> import</scope>->< scope>提供的</scope><!-将导入更改为提供的-></dependency> 


问题2:

[错误] org.springframework.boot:spring-boot-devtools:jar的'dependencies.dependency.version'丢失.@ 线73,第19列

解决方案2:

 < dependency>< groupId> org.springframework.boot</groupId>< artifactId> spring-boot-devtools</artifactId>< version> $ {spring-boot-version}</version><!-您错过了添加此版本的时间->< optional> true</optional></dependency> 


问题3:

[错误] org.springframework.boot:spring-boot-configuration-processor:jar的'dependencies.dependency.version'是丢失的.@第78行,第19列

解决方案#3:

 < dependency>< groupId> org.springframework.boot</groupId>< artifactId>弹簧启动配置处理器</artifactId>< version> $ {spring-boot-version}</version><!-您错过了添加此版本的时间->< optional> true</optional></dependency> 


问题#4:

[警告] com.amazonaws:aws-java-sdk-bom:pom的'dependencies.dependency.scope'必须为[提供,编译,运行时,测试,系统],但为导入".@第105行,第18列

解决方案#4:

 < dependency>< groupId> com.amazonaws</groupId>< artifactId> aws-java-sdk-bom</artifactId>< version> $ {aws-sdk-java-version}</version>< type> pom</type><!-< scope> import</scope>->< scope>提供的</scope><!-将导入更改为提供的-></dependency> 


问题5:

[错误] mysql:mysql-connector-java:jar的'dependencies.dependency.version'丢失.@第148行,第19列

解决方案#5:

 <!-https://mvnrepository.com/artifact/mysql/mysql-connector-java-><依赖关系>< groupId> mysql</groupId>< artifactId> mysql-connector-java</artifactId>< version> 5.1.38</version><!-您错过了添加此版本的时间-></dependency> 

I'm trying to configure a DynamoDb client with Spring Boot, and placed my endpoints and configuration information in my resources/application.properties file. However, Spring Boot does not seem to pick up these properties. It does pick up the "server.default" key that I have stored in the same file, so it is definitely recognizing the the file itself.

Here is my application.properties file and the class I'm trying to load properties into (DynamoDBClientMapper):

amazon.dynamodb.endpoint=http://localhost:8000/
amazon.dynamodb.region=us-west-1
amazon.aws.accesskey=key
amazon.aws.secretkey=key2

server.port=8080

Here is my project structure:

Here is the relevant class I'm trying to load properties into. I tried the @PropertySource annotation with a new properties file, as well as EnableAutoConfiguration, but neither are registering the properties file(s).

@PropertySource("database.properties")
public class DynamoClientMapper {

    @Value("${amazon.dynamodb.endpoint}")
    private String amazonDynamoDBEndpoint;

    @Value("${amazon.aws.accesskey}")
    private String amazonAWSAccessKey;

    @Value("${amazon.aws.secretkey}")
    private String amazonAWSSecretKey;

    @Value("${amazon.aws.region}")
    private String amazonAWSRegion;

Here is my App.java:

@SpringBootApplication
@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class})
public class App {

//    private static final Logger logger = Logger.getLogger(App.class.toString());

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

Here is the stack trace:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dynamoClientMapper' defined in file [C:\Users\ychen4\Desktop\DiningApplication\target\classes\main\java\com\dining\dao\DynamoClientMapper.class]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [main.java.com.dining.dao.DynamoClientMapper$$EnhancerBySpringCGLIB$$f4ba10ad]: Constructor threw exception; nested exception is java.lang.IllegalArgumentException: endpoint cannot be null
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1155) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1099) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866) ~[spring-context-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542) ~[spring-context-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) ~[spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:737) [spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:370) [spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:314) [spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1162) [spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1151) [spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
    at main.java.com.dining.App.main(App.java:18) [classes/:na]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_121]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_121]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_121]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_121]
    at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) [spring-boot-devtools-1.5.2.RELEASE.jar:1.5.2.RELEASE]
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [main.java.com.dining.dao.DynamoClientMapper$$EnhancerBySpringCGLIB$$f4ba10ad]: Constructor threw exception; nested exception is java.lang.IllegalArgumentException: endpoint cannot be null
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:154) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1147) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    ... 22 common frames omitted
Caused by: java.lang.IllegalArgumentException: endpoint cannot be null
    at com.amazonaws.util.RuntimeHttpUtils.toUri(RuntimeHttpUtils.java:182) ~[aws-java-sdk-core-1.11.125.jar:na]
    at com.amazonaws.util.RuntimeHttpUtils.toUri(RuntimeHttpUtils.java:171) ~[aws-java-sdk-core-1.11.125.jar:na]
    at com.amazonaws.AmazonWebServiceClient.toURI(AmazonWebServiceClient.java:238) ~[aws-java-sdk-core-1.11.125.jar:na]
    at com.amazonaws.AmazonWebServiceClient.setEndpoint(AmazonWebServiceClient.java:228) ~[aws-java-sdk-core-1.11.125.jar:na]
    at com.amazonaws.client.builder.AwsClientBuilder.setRegion(AwsClientBuilder.java:362) ~[aws-java-sdk-core-1.11.125.jar:na]
    at com.amazonaws.client.builder.AwsClientBuilder.configureMutableProperties(AwsClientBuilder.java:337) ~[aws-java-sdk-core-1.11.125.jar:na]
    at com.amazonaws.client.builder.AwsSyncClientBuilder.build(AwsSyncClientBuilder.java:46) ~[aws-java-sdk-core-1.11.125.jar:na]
    at main.java.com.dining.dao.DynamoClientMapper.<init>(DynamoClientMapper.java:32) ~[classes/:na]
    at main.java.com.dining.dao.DynamoClientMapper$$EnhancerBySpringCGLIB$$f4ba10ad.<init>(<generated>) ~[classes/:na]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_121]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_121]
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_121]
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_121]
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:142) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    ... 24 common frames omitted

I've tried making another separate database.properties file , but Spring Boot isn't recognizing that either. What am I doing wrong?

解决方案

You can make a try to define resources tag in the build section in your pom.xml file. Set path for resource directory where is application.properties

<build>
        <resources>
            <resource>
                <directory>resources</directory>
                <targetPath>${project.build.outputDirectory}</targetPath>
                <includes>
                    <include>application.properties</include>
                </includes>
            </resource>
        </resources>
</build>

Resource Link: https://stackoverflow.com/a/30595114/2293534

Another approach:

If you use spring 3.X version, You can add @PropertySource("application.properties")

@Configuration
@PropertySource(value = "classpath:application.properties")
public class ApplicationConfig {

    // more configuration ...
}

If you use spring 4 version, you add 2 properties file using new annotation called @PropertySources that allows you to declare repeated @PropertySource annotations:

@PropertySources({
    @PropertySource("default.properties"),
    @PropertySource("overriding.properties")
})

Details is given here in my another answer: https://stackoverflow.com/a/43659158/2293534

UPDATE#1:

Replace your App.java class with following class

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.web.SpringBootServletInitializer;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

//@SpringBootApplication
@Configuration
@ComponentScan
@EnableAutoConfiguration
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(applicationClass);
    }

    private static Class<Application> applicationClass = Application.class;
}

For java.io.FileNotFoundException:

Use the following

@PropertySource(value = "database.properties", ignoreResourceNotFound = true)

UPDATE#2:

I have followed the following steps to run your application. It runs successfully.

  1. Go to your project folder where pom.xml is exists.

  2. You have some errors and warning on pom.xml. I have clarified all.

  3. Open command prompt and Run mvn clean

  4. Run mvn clean install

  5. At last mvn spring-boot:run

Then in browser, I run "http://localhost:8080/"

It open's the project successfully. I have also searched other pages also opened successfully.

First page looks like below http://localhost:8080/

Review all pages looks like below: http://localhost:8080/api/reviews

[{"id":1,"userName":"ychennay","reviewText":"This restaurant was terrific!"},{"id":2,"userName":"david","reviewText":"This restaurant was okay!"},{"id":3,"userName":"ben","reviewText":"This restaurant was mediocre!"},{"id":4,"userName":"leon","reviewText":"This restaurant was awful!"},{"id":5,"userName":"lawrence","reviewText":"This restaurant was confusing!"}]

So Replace your pom.xml

<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.diningapp</groupId>
    <artifactId>Dining</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <properties>
        <jackson.version>2.7.5</jackson.version>
        <spring-version>4.3.7.RELEASE</spring-version>
        <dynamodb-local.port>8000</dynamodb-local.port>
        <dynamodb-local.endpoint>http://localhost:${dynamodb-local.port}</dynamodb-local.endpoint>
        <spring-boot-version>1.5.2.RELEASE</spring-boot-version>
        <aws-sdk-java-version>1.11.124</aws-sdk-java-version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <!-- For UTF-8 support -->
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <!-- For UTF-8 support -->
    </properties>


    <build>
        <sourceDirectory>src</sourceDirectory>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version>
                <configuration>
                    <source>1.7</source> <!-- Used java7 -->
                    <target>1.7</target> <!-- Used java7 -->
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${spring-boot-version}</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.0.0</version>
                <configuration>
                    <warSourceDirectory>WebContent</warSourceDirectory>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <repositories>
        <repository>
            <id>dynamodb-local-oregon</id>
            <name>DynamoDB Local Release Repository</name>
            <url>https://s3-us-west-2.amazonaws.com/dynamodb-local/release</url>
        </repository>
    </repositories>







    <dependencies>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-releasetrain</artifactId>
            <version>Hopper-SR10</version>
            <type>pom</type>
            <!-- <scope>import</scope> -->
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <version>${spring-boot-version}</version> <!-- You have missed to add this version -->
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <version>${spring-boot-version}</version> <!-- You have missed to add this version -->
            <optional>true</optional>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>${spring-boot-version}</version>
        </dependency>
        <dependency>
            <groupId>com.amazonaws</groupId>
            <artifactId>aws-java-sdk-dynamodb</artifactId>
            <version>${aws-sdk-java-version}</version>
        </dependency>
        <dependency>
            <groupId>com.github.derjust</groupId>
            <artifactId>spring-data-dynamodb</artifactId>
            <version>4.3.1</version>
        </dependency>

        <dependency>
            <groupId>com.amazonaws</groupId>
            <artifactId>aws-java-sdk-bom</artifactId>
            <version>${aws-sdk-java-version}</version>
            <type>pom</type>
            <!-- <scope>import</scope> -->
            <scope>provided</scope> <!-- changed import to provided -->
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <version>${spring-boot-version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${spring-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring-version}</version>
        </dependency>
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${spring-version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.38</version> <!-- You have missed to add this version -->
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-security -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
            <version>${spring-boot-version}</version>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.0.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.10</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
</project>

Errors and solutions:

Issue#1:

[WARNING] 'dependencies.dependency.scope' for org.springframework.data:spring-data-releasetrain:pom must be one of [provided, compile, runtime, test, system] but is 'import'. @ line 70, column 18

Solution#1:

<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-releasetrain</artifactId>
    <version>Hopper-SR10</version>
    <type>pom</type>
    <!-- <scope>import</scope> -->
    <scope>provided</scope>  <!-- changed import to provided -->
</dependency>


Issue#2:

[ERROR] 'dependencies.dependency.version' for org.springframework.boot:spring-boot-devtools:jar is missing. @ line 73, column 19

Solution#2:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <version>${spring-boot-version}</version> <!-- You have missed to add this version -->
    <optional>true</optional>
</dependency>


Issue#3:

[ERROR] 'dependencies.dependency.version' for org.springframework.boot:spring-boot-configuration-processor:jar is missing. @ line 78, column 19

Solution#3:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <version>${spring-boot-version}</version> <!-- You have missed to add this version -->
    <optional>true</optional>
</dependency>


Issue#4:

[WARNING] 'dependencies.dependency.scope' for com.amazonaws:aws-java-sdk-bom:pom must be one of [provided, compile, runtime, test, system] but is 'import'. @ line 105, column 18

Solution#4:

<dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk-bom</artifactId>
    <version>${aws-sdk-java-version}</version>
    <type>pom</type>
    <!-- <scope>import</scope> -->
    <scope>provided</scope> <!-- changed import to provided -->
</dependency>


Issue#5:

[ERROR] 'dependencies.dependency.version' for mysql:mysql-connector-java:jar is missing. @ line 148, column 19

Solution#5:

<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.38</version> <!-- You have missed to add this version -->
</dependency>

这篇关于Spring Boot无法识别application.properties文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆