· 9 years ago · Dec 21, 2016, 12:58 AM
1{
2 "Host": "<myhost>",
3 "Date": "2016-12-20T21:52:56,777",
4 "Thread": "simpleMessageListenerContainer-1",
5 "Level": "WARN ",
6 "Logger": "org.springframework.cloud.aws.messaging.listener.SimpleMessageListenerContainer",
7 "Msg": "An Exception occurred while polling queue 'my-queue-name'. The failing operation will be retried in 10000 milliseconds",
8 "Identifiers": {
9 "Jvm-Instance": "",
10 "App-Name": "my-app",
11 "Correlation-Id": "ca9a556e-2fbc-3g49-9fb8-0e9213bb79bc",
12 "Session-Id": "",
13 "Thread-Group": "main",
14 "Thread-Id": "32",
15 "Version": ""
16 }
17}
18java.lang.NullPointerException
19at org.springframework.cloud.aws.messaging.listener.SimpleMessageListenerContainer$AsynchronousMessageListener.run(SimpleMessageListenerContainer.java:255) [spring-cloud-aws-messaging-1.1.1.RELEASE.jar:1.1.1.RELEASE]
20at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_91]
21
22ReceiveMessageResult receiveMessageResult = getAmazonSqs().receiveMessage(this.queueAttributes.getReceiveMessageRequest());
23
24@SqsListener("${aws.sqs.queue.name}")
25public void receive(S3EventNotification s3EventNotificationRecord) {
26
27@Bean
28 public AWSCredentialsProvider awsCredentialsProvider(
29 @Value("${aws.credentials.accessKey}") String accessKey,
30 @Value("${aws.credentials.secretKey}") String secretKey,
31 JasyptPropertyDecryptor propertyDecryptor) {
32 if (!Strings.isNullOrEmpty(accessKey) || !Strings.isNullOrEmpty(secretKey)) {
33 Preconditions.checkState(
34 !Strings.isNullOrEmpty(accessKey) && !Strings.isNullOrEmpty(secretKey),
35 "Error in accessKey/secretKey config. Either both must be provided, or neither.");
36 System.setProperty("aws.accessKeyId", propertyDecryptor.decrypt(accessKey));
37 System.setProperty("aws.secretKey", propertyDecryptor.decrypt(secretKey));
38 }
39 return DefaultAWSCredentialsProviderChain.getInstance();
40 }
41
42 @Bean
43 public S3Client s3Client(
44 AWSCredentialsProvider awsCredentialsProvider,
45 @Value("${aws.s3.region.name}") String regionName,
46 @Value("${aws.s3.bucket.name}") String bucketName) {
47 return new S3Client(awsCredentialsProvider, regionName, bucketName);
48 }
49
50 @Bean
51 public QueueMessageHandlerFactory queueMessageHandlerFactory() {
52
53 MappingJackson2MessageConverter messageConverter = new MappingJackson2MessageConverter();
54 messageConverter.setStrictContentTypeMatch(false);
55
56 QueueMessageHandlerFactory factory = new QueueMessageHandlerFactory();
57 factory.setArgumentResolvers(
58 Collections.<HandlerMethodArgumentResolver>singletonList(
59 new PayloadArgumentResolver(messageConverter)));
60
61 return factory;
62 }