Anyone able to help with this please?

On Thu, Dec 21, 2017 at 6:03 PM, Charles Berger
<charlesb.yesm...@googlemail.com> wrote:
> Hi,
>
> I have the following route in my application which sends an email
> based on a template filled out with data from the SingleImageModel
> class:
>
>         from(ACTIVEMQ_EMAIL_QUEUE)
>         .routeId(ROUTE_EMAIL_NOTIFICATIONS)
>         .convertBodyTo(SingleImageModel.class)
>         // set subject, from address & to address
>         .setHeader("subject", constant(EMAIL_SUBJECT))
>         .setHeader("to", simple("${body.email}"))
>         .setHeader("from", constant(EMAIL_FROM))
>         // format the message body
>         .to(VELOCITY_EMAIL)
>         .log("${body}")
>         // send email
>         .to(SMTP_URL)
>         .end();
>
> When it tries to execute the SMTP step the message fails with the
> following error:
>
> 2017-12-21 17:30:08,034 []
> org.apache.camel.processor.DefaultErrorHandler ERROR - Failed delivery
> for (MessageId: ID-iusa16025-local-1513877322283-0-13 on ExchangeId:
> ID-iusa16025-local-1513877322283-0-11). Exhausted after delivery
> attempt: 1 caught: org.apache.camel.TypeConversionException: Error
> during type conversion from type: java.lang.String to the required
> type: java.lang.String with value queue://emailQueue due
> com.fasterxml.jackson.databind.JsonMappingException: No serializer
> found for class java.util.Vector$1 and no properties discovered to
> create BeanSerializer (to avoid exception, disable
> SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain:
> org.apache.activemq.command.ActiveMQQueue["reference"]->javax.naming.Reference["all"])
>
> The stacktrace is:
>
> org.apache.camel.TypeConversionException: Error during type conversion
> from type: java.lang.String to the required type: java.lang.String
> with value queue://emailQueue due
> com.fasterxml.jackson.databind.JsonMappingException: No serializer
> found for class java.util.Vector$1 and no properties discovered to
> create BeanSerializer (to avoid exception, disable
> SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain:
> org.apache.activemq.command.ActiveMQQueue["reference"]->javax.naming.Reference["all"])
> at 
> org.apache.camel.impl.converter.BaseTypeConverterRegistry.createTypeConversionException(BaseTypeConverterRegistry.java:667)
> at 
> org.apache.camel.impl.converter.BaseTypeConverterRegistry.convertTo(BaseTypeConverterRegistry.java:158)
> at org.apache.camel.component.mail.MailBinding.asString(MailBinding.java:717)
> at 
> org.apache.camel.component.mail.MailBinding.appendHeadersFromCamelMessage(MailBinding.java:398)
> at 
> org.apache.camel.component.mail.MailBinding.populateMailMessage(MailBinding.java:117)
> at org.apache.camel.component.mail.MailProducer.process(MailProducer.java:58)
> at 
> org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
> at 
> org.apache.camel.processor.SendProcessor$2.doInAsyncProducer(SendProcessor.java:178)
> at 
> org.apache.camel.impl.ProducerCache.doInAsyncProducer(ProducerCache.java:445)
> at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:173)
> at 
> org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:181)
> at 
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:548)
> at 
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)
> at org.apache.camel.processor.Pipeline.process(Pipeline.java:138)
> at org.apache.camel.processor.Pipeline.process(Pipeline.java:101)
> at 
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)
> at 
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:97)
> at 
> org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:112)
> at 
> org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:719)
> at 
> org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:679)
> at 
> org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:649)
> at 
> org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:317)
> at 
> org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:255)
> at 
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1166)
> at 
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1158)
> at 
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1055)
> at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
>
> The root cause appears to be this:
>
> Caused by: com.fasterxml.jackson.databind.JsonMappingException: No
> serializer found for class java.util.Vector$1 and no properties
> discovered to create BeanSerializer (to avoid exception, disable
> SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain:
> org.apache.activemq.command.ActiveMQQueue["reference"]->javax.naming.Reference["all"])
> at 
> com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:284)
> at 
> com.fasterxml.jackson.databind.SerializerProvider.mappingException(SerializerProvider.java:1110)
> at 
> com.fasterxml.jackson.databind.SerializerProvider.reportMappingProblem(SerializerProvider.java:1135)
> at 
> com.fasterxml.jackson.databind.ser.impl.UnknownSerializer.failForEmpty(UnknownSerializer.java:69)
> at 
> com.fasterxml.jackson.databind.ser.impl.UnknownSerializer.serialize(UnknownSerializer.java:32)
> at 
> com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:704)
>
> From searching around I can see that it is possible to configure
> Jackson's ability to see properties with no accessor methods (using
> objectMapper.setVisibility(PropertyAccessor.FIELD, Visibility.ANY); as
> explained here: http://www.baeldung.com/jackson-jsonmappingexception),
> but how can I do that in my Camel configuration?
>
> Is that the right approach, or is there another way to solve this problem?
>
> Thanks,
>
> Charles.

Reply via email to