Я сталкиваюсь со странной проблемой, когда строю банку через Дженкинса.Файл WAR, созданный через Jenkins, не может загрузить файл «Application.properties».Это означает, что невозможно ввести что-либо в поле «applicationProperties» в файле «ISellGenevaCacheClient.java» - LINE 4
- Эта проблема возникает только при построении WAR через Jenkins.
Если я обычно собираю WAR-файл в Eclipse (путем чистой установки maven), он может ввести значение в «ApplicationProperties» в файле «ISellGenevaCacheClient.java».
Мой файл "Application.properties" находится в каталоге src / main / resources
Ниже приведены файлы java, которые используются.
Мои ApplicationProperties.java
@Component
@ConfigurationProperties(locations ="classpath:application.properties", ignoreUnknownFields = false , prefix="prop")
public class ApplicationProperties {
private String algorithm;
public String getAlgorithm() {
return algorithm;
}
void setAlgorithm(String algorithm) {
this.algorithm = algorithm;
}
}
EncryptionUtilitiesImpl.java
public class EncryptionUtilitiesImpl {
private ApplicationProperties applicationProperties;
public EncryptionUtilitiesImpl(ApplicationProperties appProp) { // Constructor
applicationProperties = appProp;
}
public String decryptString(final String cipherTextHex) {
byte[] key = formEncryptionKeyArray(applicationProperties.getKeyProp()); // ---> Line 75 : Here , we are getting the applicationProperties as NULL
String decryptString = decryptStringFromHexWithMac(cipherTextHex, key);
return decryptString;
}
}
Utility.java
public class Utility {
public String decryptValue(String encryptedValue){
EncryptionUtilitiesImpl encryptionUtil = new EncryptionUtilitiesImpl(applicationProperties);
return encryptionUtil.decryptString(encryptedValue); // ---> Line 199
}
}
CacheClient.java
public class CacheClient {
@Inject
ApplicationProperties applicationProperties; //. --->. LINE 4
@Inject
Utility utility;
public void init(){
// -- Some code .. . . ..
Utility.decryptValue(applicationProperties.getAlgorithm())) // ---> Line 66
// --- Some code ... . . .
}}
Я получаюниже NULL Pointer Exception, поскольку он не может внедрить какой-либо объект среды выполнения в поле applicationProperties в файле «CacheClient.java» - LINE 4.
Ниже приведена трассировка стека:
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'CacheServiceImpl': Unsatisfied dependency expressed through field 'genevaInstance': Error creating bean with name 'ISellGenevaCacheClient': Invocation of init method failed; nested exception is java.lang.NullPointerException; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'CacheClient': Invocation of init method failed; nested exception is java.lang.NullPointerException
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'CacheClient': Invocation of init method failed; nested exception is java.lang.NullPointerException
Caused by: java.lang.NullPointerException: null
at com.test.util.EncryptionUtilitiesImpl.decryptString(EncryptionUtilitiesImpl.java:75)
at com.test.util.Utility.decryptValue(Utility.java:199)
at com.test.salesinterface.service.integration.geneva.cache.CacheClient.init(CacheClient.java:66)
Я действительно застрял здесь.Пожалуйста, помогите.