Я создаю загрузочное приложение Spring, и я готов начать работу над моим сервером. Тем не менее, последний шаг, который у меня есть, - это создание собственного файла .properties
в моем каталоге. Хотя, когда я создаю его, я использую также переменные с пользовательскими именами, которые имеют связанный класс, чтобы помочь получить и установить информацию. Проблема, с которой я сталкиваюсь сейчас, заключается в том, что когда я go извлекаю эту информацию в моем java классе, я продолжаю получать обратно Null Pointer Exception
. Я считаю, что мне не хватает аннотации или, может быть, шаг, но я точно не знаю, где. Я попробовал некоторые другие шаги, чтобы решить эту проблему, убедившись, что мои Autowired
были там и мои имена были правильными, но чьи тоже ничего не решали.
Java Класс:
@Component
@ConfigurationProperties
@PropertySource("file:./conf/dataload.properties")
public class DataLoadProperties {
String llave="Jz3QD5rrpmAElqa";
Deslt deslt;
private static BasicTextEncryptor basicenc = new BasicTextEncryptor();
DATASOURCE datasource;
public DATASOURCE getDatasource() {
return datasource;
}
public void setDatasource(DATASOURCE datasource) {
this.datasource = datasource;
}
public Deslt getDeslt() {
return deslt;
}
public void setDeslt(Deslt deslt) {
this.deslt = deslt;
}
public static class DATASOURCE{
String url;
String username;
String userpw;
String databasename;
String databaseschema;
String driverClassName;
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getUserpw() {
return userpw;
}
public void setUserpw(String userpw) {
this.userpw = userpw;
}
public String getDatabasename() {
return databasename;
}
public void setDatabasename(String databasename) {
this.databasename = databasename;
}
public String getDatabaseschema() {
return databaseschema;
}
public void setDatabaseschema(String databaseschema) {
this.databaseschema = databaseschema;
}
public String getDriverClassName() {
return driverClassName;
}
public void setDriverClassName(String driverClassName) {
this.driverClassName = driverClassName;
}
}
public static class Deslt{
String host;
int port;
String certfile;
String userid;
String userpw;
public int getPort() {
return port;
}
public void setPort(int port) {
this.port = port;
}
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
public String getCertfile() {
return certfile;
}
public void setCertfile(String certfile) {
this.certfile = certfile;
}
public String getUserid() {
return userid;
}
public void setUserid(String userid) {
this.userid = userid;
}
public String getUserpw() {
return userpw;
}
public void setUserpw(String userpw) {
this.userpw = userpw;
}
}
}
Свойства:
deslt.host=hostname
deslt.port=9433
deslt.certfile=\\data
deslt.userid=id
deslt.userpw=1234
jasypt.encryptor.bean=encryptorBean
spring.datasource.url=jdbc:sqlserver://server
spring.datasource.username=User
spring.datasource.password=1234
spring.datasource.databasename=TEST
spring.datasource.databaseschema=schema
spring.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.jpa.show-sql=true
spring.jpa.hibernate.dialect=org.hibernate.dialect.SQLServer2012Dialect
spring.jpa.hibernate.ddl-auto = none
Пример точки отказа:
String host = dataProperties.getDeslt().getHost();
String password=dataProperties.getDeslt().getUserpw();
Ошибка:
Null Pointer Exception on: dataProperties.getDeslt().getHost();
В качестве теста при попытке просто распечатать dataProperties
я получил эту ошибку.
2020-04-10 09:48:11,743 [http-nio-8080-exec-8] DEBUG api.ApiFactory - Creating BeanFactory from file
2020-04-10 09:48:11,745 [http-nio-8080-exec-8] DEBUG api.ApiFactory - Loading the BeanFactory from etc\api-setup.xml
2020-04-10 09:48:11,746 [http-nio-8080-exec-8] DEBUG api.ApiFactory - Collation home is not set
2020-04-10 09:48:11,746 [http-nio-8080-exec-8] DEBUG api.ApiFactory - Unable to load the BeanFactory from file, loading from classloader
2020-04-10 09:48:11,937 [http-nio-8080-exec-8] DEBUG api.ApiFactory - Found BeanFactory = org.springframework.beans.factory.xml.XmlBeanFactory@4aa60348: defining beans [ApiConnectionFactory,ApiSessionFactory,PostProcess]; root of factory hierarchy
2020-04-10 09:48:11,940 [http-nio-8080-exec-8] DEBUG client.ApiSessionFactory - ApiSessionFactory: Api server is ignoreThis
2020-04-10 09:48:11,941 [http-nio-8080-exec-8] DEBUG api.ApiFactory - Truststore is null
2020-04-10 09:48:11,941 [http-nio-8080-exec-8] DEBUG client.ApiConnectionFactory - Truststore is: null
2020-04-10 09:48:11,950 [http-nio-8080-exec-8] INFO client.ApiConnectionImpl - Truststore in setTrustore: null