【问题标题】:Camel JPA Idempotent + OSGI (Jboss Fuse)Camel JPA 幂等性 + OSGI (Jboss Fuse)
【发布时间】:2017-10-17 12:51:12
【问题描述】:

当我尝试在 Fuse Fabric OSGI 容器(fuse-karaf 6.3)中使用 JPA 幂等时遇到问题。 我得到了这个例外:

Caused by: java.lang.ClassNotFoundException: org.hibernate.proxy.HibernateProxy not found by org.apache.camel.camel-jpa [121] 

我用示例创建了一个简单的项目:camel-jpa-idempotent

这是我的路线:

from("jpa:com.mycompany.model.Client?persistenceUnit=persistenceUnit&consumeDelete=false") 
                .split().simple("${body}") 
                        .idempotentConsumer(simple("${body.id}/${body.name}"), JpaMessageIdRepository.jpaMessageIdRepository("persistenceUnit", "ClientRepository")) 
                        .log("${body.name} processed"); 

=========================================

我的背景:

<osgix:cm-properties id="parametros.spring" persistent-id="parametros.spring">
        <prop key="db.driverClassName">org.postgresql.Driver</prop>
        <prop key="db.url">jdbc:postgresql://192.168.238.1:5432/camel-jpa 
                </prop>
        <prop key="db.username">camel-jpa</prop>
        <prop key="db.password">123456</prop>
    </osgix:cm-properties>
    <ctx:property-placeholder properties-ref="parametros.spring"/>

    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
                <property name="driverClassName" value="${db.driverClassName}" />
                <property name="url" value="${db.url}" />
                <property name="username" value="${db.username}" />
                <property name="password" value="${db.password}" />
        </bean>
    <bean class="com.mycompany.routes.CamelRoute" id="javaCamelRoute"/>
    <bean class="org.apache.camel.component.jpa.JpaComponent" id="jpa">
        <property name="entityManagerFactory" ref="entityManagerFactory"/>
        <property name="transactionManager" ref="jpaTxManager"/>
    </bean>
    <bean class="org.springframework.orm.jpa.JpaTransactionManager" id="jpaTxManager">
        <property name="entityManagerFactory" ref="entityManagerFactory"/>
    </bean>
    <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
        <property name="persistenceUnitName" value="persistenceUnit"/>
        <property name="dataSource" ref="dataSource"/>
    </bean>

    <camelContext id="amq-example-context" 
        xmlns="http://camel.apache.org/schema/spring" xmlns:order="http://com.mycompany/examples/order">
        <propertyPlaceholder id="properties" location="ref:parametros.spring"/>
        <routeBuilder ref="javaCamelRoute"/>
    </camelContext>

================================================ ==============

【问题讨论】:

    标签: hibernate jpa apache-camel osgi jbossfuse


    【解决方案1】:

    Bug 确认并解决

    该问题在 Fuse 6.3 中被确认为 Bug 并已解决 here,因此我更改为使用 camel-jdbc 的幂等性。

    【讨论】:

      猜你喜欢
      • 2014-03-31
      • 1970-01-01
      • 2017-04-30
      • 2021-12-31
      • 2016-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多