Hi,
I have created a project using camel jpa component :
Spring DAO Bundle
**********************
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceUnitName" value="reportincident"/>
<property name="dataSource" ref="reportdb"/>
<property name="jpaVendorAdapter">
<bean id="jpaAdapter"
class="org.springframework.orm.jpa.vendor.OpenJpaVendorAdapter">
<property name="databasePlatform"
value="org.apache.openjpa.jdbc.sql.HSQLDictionary"/>
<property name="showSql" value="true"/>
<property name="database" value="HSQL"/>
</bean>
</property>
</bean>
<bean id="reportdb"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="org.hsqldb.jdbcDriver"/>
<property name="url" value="jdbc:hsqldb:hsql://localhost/reportdb"/>
<property name="username" value="sa"/>
<property name="password" value=""/>
</bean>
<!-- Expose EntityManagerFactory -->
<osgi:service ref="entityManagerFactory"
interface="javax.persistence.EntityManagerFactory"/>
Camel bundle
****************
<bean id="jpa" class="org.apache.camel.component.jpa.JpaComponent">
<property name="entityManagerFactory">
<osgi:reference interface="javax.persistence.EntityManagerFactory"/>
</property>
</bean>
<route id="queue-create-incident">
<from uri="activemq:queue:incident"/>
<log message=">>> Incident received : ${body}"/>
<to uri="jpa://com.fusesource.webinars.persistence.model.Incident"/>
<log message=">>> Record inserted : ${body}"/>
</route>
My JPA component receives the object to insert into the DB but
Unfortunately I get this error :
Caused by: java.lang.NoClassDefFoundError: Could not initialize class $Proxy46
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)[:1.6.0_24]
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)[:1.6.0_24]
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)[:1.6.0_24]
at
java.lang.reflect.Constructor.newInstance(Constructor.java:513)[:1.6.0_24]
at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:588)[:1.6.0_24]
at
org.springframework.orm.jpa.ExtendedEntityManagerCreator.createProxy(ExtendedEntityManagerCreator.java:264)
at
org.springframework.orm.jpa.ExtendedEntityManagerCreator.createProxy(ExtendedEntityManagerCreator.java:229)
at
org.springframework.orm.jpa.ExtendedEntityManagerCreator.createApplicationManagedEntityManager(ExtendedEntityManagerCreator.java:110)
The issue is perhaps related to the fact that I try to retrieve the
EntityManagerFactory using OSGI Service. Is there an alternative ?
Regards,
Charles Moulliard
Sr. Principal Solution Architect - FuseSource
Apache Committer
Blog : http://cmoulliard.blogspot.com
Twitter : http://twitter.com/cmoulliard
Linkedin : http://www.linkedin.com/in/charlesmoulliard
Skype: cmoulliard