camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From chanducompute <chanducomp...@yahoo.co.in>
Subject Camel JPA endpoint consumer problem
Date Fri, 04 Jul 2014 09:11:59 GMT
Hi, 

I am new camel and tried using JPA end point in my code. 

Belos is the Java DSL route 
from("timer:refresh?period=2m") 
                               
.to("jpa:com.test.persistence.entity.ParameterMappings?consumer.namedQuery=chandra") 
                                .log("${body}"); 

Here is my persistence.xml 
<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="2.0" 
        xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">

        <persistence-unit name="OpsConsoleDB"
transaction-type="RESOURCE_LOCAL">
        
                <provider>org.hibernate.ejb.HibernatePersistence</provider>
               
<jta-data-source>java:jboss/datasources/ExampleDS</jta-data-source>
                
                

                <class>com.test.persistence.entity.ParameterMappings</class>

                <properties>
                        <property name="hibernate.default_schema"
value="opsBridge" />
                        <property name="hibernate.dialect"
value="org.hibernate.dialect.PostgreSQLDialect" />
                        <property name="hibernate.jdbc.batch_size"
value="20" />
                        <property
name="hibernate.transaction.manager_lookup_class"
value="org.hibernate.transaction.JBossTransactionManagerLookup" />
                        <property name="hibernate.show_sql" value="true" />
                </properties>
        </persistence-unit>
</persistence>

Below is my camel context file snippet 
<bean id="jpa" class="org.apache.camel.component.jpa.JpaComponent">
                <property name="entityManagerFactory" ref="opsEMFactory" />
                <property name="transactionManager" ref="opsTxManager" />
        </bean>

        <bean id="opsTxManager"
class="org.springframework.orm.jpa.JpaTransactionManager">
                <property name="entityManagerFactory" ref="opsEMFactory" />
        </bean>

        <bean id="opsEMFactory" 
               
class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
                <property name="persistenceUnitName" value="OpsConsoleDB" />
        </bean>

When I deploy the application. The camel is invoking the timer component but
at JPA execution I am getting the below exception. 
Exchange 
---------------------------------------------------------------------------------------------------------------------------------------

Exchange[ 
        Id                  ID-E0685F1L-50180-1404458135473-0-2 
        ExchangePattern     InOnly 
        Headers            
{breadcrumbId=ID-E0685F1L-50180-1404458135473-0-1,
CamelEntityManager=org.hibernate.ejb.EntityManagerImpl@79de0e,
CamelRedelivered=false, CamelRedeliveryCounter=0, firedTime=Fri Jul 04
12:45:37 IST 2014} 
        BodyType            null 
        Body                [Body is null] 
] 

Stacktrace 
---------------------------------------------------------------------------------------------------------------------------------------:
org.apache.camel.InvalidPayloadRuntimeException: No body available of type:
com.test.persistence.entity.ParameterMappings on: Message: [Body is null].
Caused by: No type converter available to convert from type: null to the
required type: com.test.persistence.entity.ParameterMappings with value null
on the exchange: Exchange[Message: [Body is null]] 
        at
org.apache.camel.component.jpa.JpaEndpoint$1.evaluate(JpaEndpoint.java:289)
[camel-jpa-2.12.2.jar:2.12.2] 
        at
org.apache.camel.support.ExpressionAdapter.evaluate(ExpressionAdapter.java:36)
[camel-core-2.12.2.jar:2.12.2] 
        at
org.apache.camel.component.jpa.JpaProducer.process(JpaProducer.java:56)
[camel-jpa-2.12.2.jar:2.12.2] 
        at
org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
[camel-core-2.12.2.jar:2.12.2] 
        at
org.apache.camel.processor.SendProcessor$2.doInAsyncProducer(SendProcessor.java:132)
[camel-core-2.12.2.jar:2.12.2] 
        at
org.apache.camel.impl.ProducerCache.doInAsyncProducer(ProducerCache.java:307)
[camel-core-2.12.2.jar:2.12.2] 
        at
org.apache.camel.processor.SendProcessor.process(SendProcessor.java:127)
[camel-core-2.12.2.jar:2.12.2] 
        at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72)
[camel-core-2.12.2.jar:2.12.2] 
        at
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:398)
[camel-core-2.12.2.jar:2.12.2] 
        at
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
[camel-core-2.12.2.jar:2.12.2] 
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:118)
[camel-core-2.12.2.jar:2.12.2] 
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
[camel-core-2.12.2.jar:2.12.2] 
        at
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
[camel-core-2.12.2.jar:2.12.2] 
        at
org.apache.camel.component.timer.TimerConsumer.sendTimerExchange(TimerConsumer.java:139)
[camel-core-2.12.2.jar:2.12.2] 
        at
org.apache.camel.component.timer.TimerConsumer$1.run(TimerConsumer.java:64)
[camel-core-2.12.2.jar:2.12.2] 
        at java.util.TimerThread.mainLoop(Timer.java:555) [rt.jar:1.7.0_51] 
        at java.util.TimerThread.run(Timer.java:505) [rt.jar:1.7.0_51] 
Caused by: org.apache.camel.NoTypeConversionAvailableException: No type
converter available to convert from type: null to the required type:
com.test.persistence.entity.ParameterMappings with value null 
        at
org.apache.camel.impl.converter.BaseTypeConverterRegistry.mandatoryConvertTo(BaseTypeConverterRegistry.java:181)
[camel-core-2.12.2.jar:2.12.2] 
        at
org.apache.camel.impl.MessageSupport.getMandatoryBody(MessageSupport.java:99)
[camel-core-2.12.2.jar:2.12.2] 
        at
org.apache.camel.component.jpa.JpaEndpoint$1.evaluate(JpaEndpoint.java:286)
[camel-jpa-2.12.2.jar:2.12.2] 
        ... 16 more 

====== 
Can some one please help me resolve this? 



--
View this message in context: http://camel.465427.n5.nabble.com/Camel-JPA-endpoint-consumer-problem-tp5753332.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Mime
View raw message