Hello,
I'm unable to get the Camel-JPA component working in ServiceMix 5.x. I'm
using Hibernate with a Postgres database. I get a couple of different errors
depending on the configuration. I'm building ServiceMix 5 using the latest
source from Git.
If I use the Spring HibernateJpaVendorAdapter, I get the following error:
org.apache.aries.blueprint.core - 1.1.0 | Unable to start blueprint
container for bundle ...
org.osgi.service.blueprint.container.ComponentDefinitionException: Error
when instantiating bean hibernateJpaAdapter of class class
org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter
...
Caused by: java.lang.NoClassDefFoundError:
org/hibernate/ejb/HibernatePersistence
at
org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter.<init>(HibernateJpaVendorAdapter.java:57)
This is perplexing because I'm "wrapping" the Hibernate EntityManager
library and I can see the missing class:
> osgi:install -s wrap:mvn:org.hibernate/hibernate-entitymanager/3.6.0.Final
Bundle ID: 187
> osgi:classes 187
wrap_mvn_org.hibernate_hibernate-entitymanager_3.6.0.Final (187)
...
org/hibernate/ejb/HibernatePersistence.class
...
If I remove the JPA Adapter configuration and add this to the
persistence.xml:
<provider>org.hibernate.ejb.HibernatePersistence</provider>
then I get this error:
org.apache.aries.blueprint.core - 1.1.0 | Unable to start blueprint
container for bundle ...
org.osgi.service.blueprint.container.ComponentDefinitionException: Error
setting property: PropertyDescriptor <name: entityManagerFactory, getter:
class
org.springframework.orm.jpa.JpaTransactionManager.getEntityManagerFactory(),
setter: [class
org.springframework.orm.jpa.JpaTransactionManager.setEntityManagerFactory(interface
javax.persistence.EntityManagerFactory)]
...
Caused by: java.lang.Exception: Unable to convert value
org.springframework.orm.jpa.LocalContainerEn
tityManagerFactoryBean@3f129523 to type
javax.persistence.EntityManagerFactory
Here is my current configuration...
Blueprint.xml:
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0
http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">
<bean id="transactionTemplate"
class="org.springframework.transaction.support.TransactionTemplate">
<property name="transactionManager">
<bean class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>
</property>
</bean>
<bean id="jpaTemplate" class="org.springframework.orm.jpa.JpaTemplate">
<property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceXmlLocation"
value="classpath*:META-INF/persistence.xml"/>
<property name="persistenceUnitName" value="isdms" />
<property name="jpaVendorAdapter" ref="hibernateJpaAdapter" />
</bean>
<bean id="hibernateJpaAdapter"
class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="showSql" value="true" />
</bean>
<camelContext xmlns="http://camel.apache.org/schema/blueprint">
<route>
<from
uri="timer://foo?fixedRate=true&period=5000&repeatCount=10"/>
<from
uri="jpa:com.acme.MyEntity?persistenceUnit=isdms&consumeDelete=false"/>
<log message="Message body: ${body}"/>
</route>
</camelContext>
</blueprint>
Persistence.xml:
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0">
<persistence-unit name="isdms" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.dialect"
value="org.hibernate.dialect.PostgreSQL82Dialect"/>
<property name="hibernate.connection.driver_class"
value="org.postgresql.Driver"/>
<property name="hibernate.connection.url"
value="jdbc:postgresql://..."/>
<property name="hibernate.connection.username" value="..."/>
<property name="hibernate.connection.password" value="..."/>
</properties>
</persistence-unit>
</persistence>
Any help would be appreciated.
Thanks,
Scott Dawson
--
View this message in context:
http://servicemix.396122.n5.nabble.com/Camel-JPA-with-Hibernate-tp5718305.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.