Ошибка Создание боба с именем 'DynamoDbenCancedClientlocal' определено в ресурсе пути класса [com/sgeidatareConciliationJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка Создание боба с именем 'DynamoDbenCancedClientlocal' определено в ресурсе пути класса [com/sgeidatareConciliation

Сообщение Anonymous »

Я впервые делаю соединение DynamoDB. Моя цель состоит в том, чтобы сохранить некоторые данные в DynamoDB, и я использую AWS SDK2, чтобы сделать это ниже, - это ошибка, которую я получаю несколько вещей, которые я пробовал < /p>

Определил класс @configuration с бобами DynamoDB < /li>
Использовать инъекцию конструктора или @postcontuctrest для dataReportory < /li>

undercement или @postcontucturtcure < /li>
undersection или @postcontuctry для dataRepositorior < /li>
. /> log консоли < /strong> < /p>

Код: Выделить всё

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'dataRepository' defined in file [C:\Users\V48252\Documents\s-gei-data-reconciliation-api\target\classes\com\aflac\eib\sgeidatareconciliation\repository\DataRepository.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'dynamoDbEnhancedClientLocal' defined in class path resource [com/aflac/eib/sgeidatareconciliation/config/DynamoDBConfig.class]: Failed to instantiate [software.amazon.awssdk.enhanced.dynamodb.DynamoDbEnhancedClient]: Factory method 'dynamoDbEnhancedClientLocal' threw exception with message: software/amazon/awssdk/utils/ProxyConfigProvider
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(Constrg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:569) ~[spring-beans-6.2.8.jar:6.2.8]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529) ~[spring-beans-6.2.8.jar:6.2.8]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) ~[spring-beans-6.2.8.jar:6.2.8]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373) ~[spring-beans-6.2.8.jar:6.2.8]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) ~[spring-beans-6.2.8.jar:6.2.8]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-6.2.8.jar:6.2.8]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.instantiateSingleton(DefaultListableBeanFactory.java:1222) ~[spring-beans-6.2.8.jar:6.2.8]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingleton(DefaultListableBeanFactory.java:1188) ~[spring-beans-6.2.8.jar:6.2.8]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:1123) ~[spring-beans-6.2.8.jar:6.2.8]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:987) ~[spring-context-6.2.8.jar:6.2.8]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:627) ~[spring-context-6.2.8.jar:6.2.8]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.4.7.jar:3.4.7]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752) ~[spring-boot-3.4.7.jar:3.4.7]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) ~[spring-boot-3.4.7.jar:3.4.7]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:318) ~[spring-boot-3.4.7.jar:3.4.7]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1361) ~[spring-boot-3.4.7.jar:3.4.7]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1350) ~[spring-boot-3.4.7.jar:3.4.7]
at com.aflac.eib.sgeidatareconciliation.SGeiDataReconciliationApiApplication.main(SGeiDataReconciliationApiApplication.java:10) ~[classes/:na]
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dynamoDbEnhancedClientLocal' defined in class path resource [com/aflac/eib/sgeidatareconciliation/config/DynamoDBConfig.class]: Failed to instantiate [software.amazon.awssdk.enhanced.dynamodb.DynamoDbEnhancedClient]: Factory method 'dynamoDbEnhancedClientLocal' threw exception with message:  software/amazon/awssdk/utils/ProxyConfigProvider
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:657) ~[spring-beans-6.2.8.jar:6.2.8]
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:489) ~[spring-beans-6.2.8.jar:6.2.8]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1375) ~[spring-beans-6.2.8.jar:6.2.8]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1205) ~[spring-beans-6.2.8.jar:6.2.8]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:569) ~[spring-beans-6.2.8.jar:6.2.8]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529) ~[spring-beans-6.2.8.jar:6.2.8]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) ~[spring-beans-6.2.8.jar:6.2.8]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373) ~[spring-beans-6.2.8.jar:6.2.8]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) ~[spring-beans-6.2.8.jar:6.2.8]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-6.2.8.jar:6.2.8]
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) ~[spring-beans-6.2.8.jar:6.2.8]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1745) ~[spring-beans-6.2.8.jar:6.2.8]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1628) ~[spring-beans-6.2.8.jar:6.2.8]
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:913) ~[spring-beans-6.2.8.jar:6.2.8]
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791) ~[spring-beans-6.2.8.jar:6.2.8]
... 21 common frames omitted
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [software.amazon.awssdk.enhanced.dynamodb.DynamoDbEnhancedClient]: Factory method 'dynamoDbEnhancedClientLocal' threw exception with message: software/amazon/awssdk/utils/ProxyConfigProvider
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.lambda$instantiate$0(SimpleInstantiationStrategy.java:199) ~[spring-beans-6.2.8.jar:6.2.8]
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiateWithFactoryMethod(SimpleInstantiationStrategy.java:88) ~[spring-beans-6.2.8.jar:6.2.8]
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:168) ~[spring-beans-6.2.8.jar:6.2.8]
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653) ~[spring-beans-6.2.8.jar:6.2.8]
... 35 common frames omitted
Caused by: java.lang.NoClassDefFoundError: software/amazon/awssdk/utils/ProxyConfigProvider
at software.amazon.awssdk.http.apache.ProxyConfiguration.(ProxyConfigurationCaused by: java.lang.ClassNotFoundException: software.amazon.awssdk.utils.ProxyConfigProvider
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[na:na]
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[na:na]
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525) ~[na:na]
...  56 common frames omitted

nadimodbconfig.java[/b]

Код: Выделить всё

@Configuration
public class DynamoDBConfig {

//    @Value("${aws.region}")
private String region ="us-east-1";

//    @Value("${aws.accessKey}")
private String accessKey = "valueOfAccessKey";

//    @Value("${aws.secretKey}")
private String secretKey ="valueOfSecretKey";

//    @Profile("local")
@Bean
public DynamoDbEnhancedClient dynamoDbEnhancedClientLocal() {
DynamoDbClient dynamoDbClient = DynamoDbClient.builder()
.region(Region.of(region))
.credentialsProvider(StaticCredentialsProvider.create(AwsBasicCredentials.create(accessKey, secretKey)))
.httpClient(ApacheHttpClient.builder().build())
.build();
return DynamoDbEnhancedClient.builder().dynamoDbClient(dynamoDbClient).build();
}

@Profile({"dev", "val" , "stg" , "prd"})
@Bean
public DynamoDbEnhancedClient dynamoDbEnhancedClientCloud() {
DynamoDbClient dynamoDbClient = DynamoDbClient.builder()
.region(Region.of(region))
.credentialsProvider(DefaultCredentialsProvider.create())
.httpClient(ApacheHttpClient.builder().build())
.build();
return DynamoDbEnhancedClient.builder().dynamoDbClient(dynamoDbClient).build();
}

}

< /code>
** DataRepository, java ** < /p>
@Repository
@RequiredArgsConstructor
public class DataRepository {

@Value("${aws.tableName}")
private String tableName;

private  DynamoDbTable dataTable;

private final DynamoDbEnhancedClient dynamoDbEnhancedClient;
//
//
//
//    public DataRepository(DynamoDbEnhancedClient client) {
//        this.table = client.table(tableName, TableSchema.fromBean(Data.class));
//    //    table.createTable();
//    }

@PostConstruct
public void init(){
dataTable = dynamoDbEnhancedClient.table(tableName, TableSchema.fromBean(Data.class));
}

// CREATE or UPDATE
public void save(Data data) {
dataTable.putItem(data);
}

//READ
public Optional findById(String oppRecId) {
Data data = dataTable.getItem(r -> r.key(k -> k.partitionValue(oppRecId)));
return Optional.ofNullable(data);
}

//DELETE
public void delete(String oppRecId) {
dataTable.deleteItem(r -> r.key(k -> k.partitionValue(oppRecId)));
}

}

< /code>
**SGeIdatareConciliationServiceImpl.java ** < /p>
@Service
@RequiredArgsConstructor
public class SGeiDataReconciliationServiceImpl implements SGeiDataReconciliationService {

private final DataRepository dataRepository;

//    public SGeiDataReconciliationServiceImpl(DataRepository dataRepository){
//        this.dataRepository = dataRepository;
//    }

@Override
public Data saveData(Data newData) throws DataProcessingException{

try {
AppLogger.debug(SGeiDataReconciliationServiceImpl.class,"Saving data with opptRecId: {}" , newData.getOpptRecordId());
Data exisitngdata = dataRepository.findById(newData.getOpptRecordId()).orElse(null);

if(exisitngdata !=null) {
AppLogger.debug(SGeiDataReconciliationServiceImpl.class, "Record with given opptRecId already exist, Updating record ! ");
}else{

AppLogger.debug(SGeiDataReconciliationServiceImpl.class, "Record with given opptRecId already exist, Updating record ! ");
}
Data merged = DataMapper.merge(exisitngdata,newData);

dataRepository.save(merged);

} catch (Exception e) {
AppLogger.error(SGeiDataReconciliationServiceImpl.class," Failed to persist data into geihub ");
throw new DataProcessingException("Failed to persist data into GEIHub :",e , ExceptionType.TECHNICAL);
}

return null;
}

@Override
public Optional getDataById(String opptRecId) {

try {
AppLogger.debug(SGeiDataReconciliationServiceImpl.class," Fetching data with opptRecId :"  + opptRecId);

if(Utils.isNotNullOrEmpty(opptRecId)){
return  dataRepository.findById(opptRecId);
}

}catch (Exception e){
AppLogger.error(SGeiDataReconciliationServiceImpl.class,"Failed to get data for the given ID" + opptRecId);
}

return Optional.empty();
}

@Override
public void deleteData(String opptRecId) {

}
}

Если я использую AWS SDK1, так как я вижу, что большинство примеров используют только это, и то, что будет основным отличием между ними, если кто -то может поделиться хорошей примером документации, на которую можно указать, чтобы его было проще изучать и избежать такого рода ошибок.

Подробнее здесь: https://stackoverflow.com/questions/797 ... -class-pat
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»