Here is the config Johan

ersistence config
**********************
   <persistence-unit name="reportincident" transaction-type="JTA">

       
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>

       
<jta-data-source>osgi:service/javax.sql.XADataSource/(transactional=true)</jta-data-source>

       <!-- Required by openJPA to update sequence table outside of
Global Tx Management -->
       
<non-jta-data-source>osgi:service/javax.sql.DataSource/(transactional=false)</non-jta-data-source>

       <class>com.fusesource.webinars.persistence.model.Incident</class>

       <exclude-unlisted-classes>true</exclude-unlisted-classes>

       <!-- openjpa & HSQLDB -->
       <properties>
           <property name="openjpa.jdbc.SynchronizeMappings"

value="buildSchema(SchemaAction='add,deleteTableContents')"/>
           <property name="openjpa.Log"
                     value="commons"/>
           <property name="openjpa.jdbc.DBDictionary"
                     value="hsql(useSchemaName=true)"/>
           <property name="openjpa.jdbc.Schema"
                     value="PUBLIC"/>
           <property name="openjpa.TransactionMode"
                     value="managed"/>
           <property name="openjpa.ManagedRuntime"

value="jndi(TransactionManagerName=aries:services/javax.transaction.TransactionManager)"/>
           <property name="openjpa.Multithreaded"
                     value="true"/>
           <property name="openjpa.TransactionMode"
                     value="managed"/>
           <property name="openjpa.ConnectionFactoryMode"
                     value="managed"/>
       </properties>

       </persistence-unit>
</persistence>

On Tue, Apr 12, 2011 at 4:08 PM, Johan Edstrom <[email protected]> wrote:
> What does your persistence look like?
> You'll need something like
>
> <persistence 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";
>             version="2.0">
>
>  <persistence-unit name="mymagical-jpa-unit" transaction-type="JTA">
>    <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
>    <jta-data-source>blueprint:comp/jta</jta-data-source>
>    
> <non-jta-data-source>osgi:service/javax.sql.DataSource/(transactional=false)</non-jta-data-source>
>        <!-- Entity classes here -->
>
>    <exclude-unlisted-classes>true</exclude-unlisted-classes>
>    <validation-mode>NONE</validation-mode>
>
>    <properties>
>      <property name="openjpa.Multithreaded" value="true"/>
>      <property name="openjpa.TransactionMode" value="managed"/>
>      <property name="openjpa.ConnectionFactoryMode" value="managed"/>
>      <property name="openjpa.jdbc.MappingDefaults" 
> value="ForeignKeyDeleteAction=restrict, JoinForeignKeyDeleteAction=restrict"/>
>      <property name="openjpa.LockManager" 
> value="pessimistic(VersionCheckOnReadLock=true,VersionUpdateOnWriteLock=true)"/>
>      <property name="openjpa.Log" value="DefaultLevel=INFO, Runtime=INFO, 
> Tool=INFO, SQL=INFO"/>
>    </properties>
>  </persistence-unit>
>
> </persistence>
> On Apr 12, 2011, at 7:43 AM, Guillaume Nodet wrote:
>
>> Looking at the stack trace, the problem seems to be in the JPA
>> definition, as it does not hit the datasource.
>> Can you list the services exported by the datasource bundle ?
>> Also, do you have aries jndi installed ? As your config uses it to
>> lookup the osgi service.
>>
>> On Tue, Apr 12, 2011 at 14:47, Charles Moulliard <[email protected]> 
>> wrote:
>>> Here is the complete blueprint file to expose the datasource
>>>
>>> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0";
>>>           
>>> xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0";>
>>>
>>>    <cm:property-placeholder persistent-id="database" id="database">
>>>        <cm:default-properties>
>>>
>>>            <!-- JDBC Drivers -->
>>>            <cm:property name="jdbc.driverClassName"
>>> value="org.hsqldb.jdbcDriver"/>
>>>            <cm:property name="jdbc.url"
>>> value="jdbc:hsqldb:hsql://localhost/reportdb"/>
>>>            <cm:property name="jdbc.username" value="sa"/>
>>>            <cm:property name="jdbc.password" value=""/>
>>>
>>>            <!-- Connection Pooling DBCP -->
>>>            <cm:property name="jdbc.initialSize" value="5"/>
>>>            <cm:property name="jdbc.maxActive" value="10"/>
>>>            <cm:property name="jdbc.maxIdle" value="10"/>
>>>            <cm:property name="jdbc.defaultAutoCommit" value="false"/>
>>>            <cm:property name="jdbc.removeAbandoned" value="false"/>
>>>            <cm:property name="jdbc.removeAbandonedTimeout" value="300"/>
>>>            <cm:property name="jdbc.logAbandoned" value="false"/>
>>>
>>>        </cm:default-properties>
>>>    </cm:property-placeholder>
>>>
>>>    <service auto-export="interfaces" ref="jta">
>>>        <service-properties>
>>>            <entry key="transactional" value="true"/>
>>>        </service-properties>
>>>    </service>
>>>
>>>    <service auto-export="interfaces" ref="nonJTA">
>>>        <service-properties>
>>>            <entry key="transactional" value="false"/>
>>>        </service-properties>
>>>    </service>
>>>
>>>    <!-- ###### JDBC Data Source ###### -->
>>>    <bean id="jta" class="org.enhydra.jdbc.standard.StandardXADataSource">
>>>        <property name="driverName" value="${jdbc.driverClassName}"/>
>>>        <property name="url" value="${jdbc.url}"/>
>>>        <property name="user" value="${jdbc.username}"/>
>>>        <property name="password" value="${jdbc.password}"/>
>>>    </bean>
>>>
>>>    <bean class="org.apache.commons.dbcp.BasicDataSource" id="nonJTA">
>>>        <property name="driverClassName" value="${jdbc.driverClassName}"/>
>>>        <property name="url" value="${jdbc.url}"/>
>>>        <property name="username" value="${jdbc.username}"/>
>>>        <property name="password" value="${jdbc.password}"/>
>>>        <property name="initialSize" value="${jdbc.initialSize}"/>
>>>        <property name="maxActive" value="${jdbc.maxActive}"/>
>>>        <property name="maxIdle" value="${jdbc.maxIdle}"/>
>>>        <property name="defaultAutoCommit" value="false"/>
>>>        <property name="removeAbandoned" value="${jdbc.removeAbandoned}"/>
>>>        <property name="removeAbandonedTimeout"
>>> value="${jdbc.removeAbandonedTimeout}"/>
>>>        <property name="logAbandoned" value="${jdbc.logAbandoned}"/>
>>>    </bean>
>>>
>>> </blueprint>
>>>
>>> Regards,
>>>
>>> Charles
>>>
>>>
>>> On Tue, Apr 12, 2011 at 2:37 PM, Ioannis Canellos <[email protected]> wrote:
>>>> Halo Charles,
>>>>
>>>> I think that you didn't paste the actual data source.
>>>>
>>>>
>>>> On Tue, Apr 12, 2011 at 3:20 PM, Charles Moulliard 
>>>> <[email protected]>wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> I have configured OpenJPA to use a JTA/XA Datasource on ServiceMix but
>>>>> when I try to insert data in the DB, openJPA generates the following
>>>>> error :
>>>>>
>>>>> Caused by: java.lang.RuntimeException: There were errors initializing
>>>>> your configuration: <openjpa-2.1.0-r422266:1071316 fatal user error>
>>>>> org.apache.openjpa.util.UserException: A JDBC Driver or DataSource
>>>>> class name must be specified in the ConnectionDriverName property.
>>>>>        at
>>>>> org.apache.openjpa.jdbc.schema.DataSourceFactory.newDataSource(DataSourceFactory.java:76)
>>>>>        at
>>>>> org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.createConnectionFactory(JDBCConfigurationImpl.java:844)
>>>>>        at
>>>>> org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getConnectionFactory(JDBCConfigurationImpl.java:732)
>>>>>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>        at
>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>>>        at
>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>>>        at java.lang.reflect.Method.invoke(Method.java:597)
>>>>>        at
>>>>> org.apache.openjpa.lib.conf.ConfigurationImpl.instantiateAll(ConfigurationImpl.java:295)
>>>>>
>>>>>
>>>>> The property
>>>>> <jta-data-source>osgi:service/javax.sql.DataSource/(transactional=true)</jta-datasource>
>>>>>  in the persistence.xml file point to the XADataSource exposed as an
>>>>> osgi service
>>>>>
>>>>> Persistence
>>>>> **************
>>>>> <persistence-unit name="reportincident" transaction-type="JTA">
>>>>>
>>>>>
>>>>>  <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
>>>>>
>>>>>
>>>>>  <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
>>>>>
>>>>>
>>>>>  <jta-data-source>osgi:service/javax.sql.DataSource/(transactional=true)</jta-data-source>
>>>>>        <!-- Required by openJPA to update sequence table outside of
>>>>> Global Tx Management -->
>>>>>
>>>>>  <non-jta-data-source>osgi:service/javax.sql.DataSource/(transactional=false)</non-jta-data-source>
>>>>>
>>>>>        <class>com.mycompany.persistence.model.Incident</class>
>>>>>
>>>>>        <exclude-unlisted-classes>true</exclude-unlisted-classes>
>>>>>
>>>>>        <!-- openjpa & HSQLDB -->
>>>>>        <properties>
>>>>>            <property name="openjpa.jdbc.SynchronizeMappings"
>>>>>
>>>>> value="buildSchema(SchemaAction='add,deleteTableContents')"/>
>>>>>            <property name="openjpa.Log"
>>>>>                      value="commons"/>
>>>>>            <property name="openjpa.jdbc.DBDictionary"
>>>>>                      value="hsql(useSchemaName=true)"/>
>>>>>            <property name="openjpa.jdbc.Schema"
>>>>>                      value="PUBLIC"/>
>>>>>            <property name="openjpa.TransactionMode"
>>>>>                      value="managed"/>
>>>>>            <property name="openjpa.ManagedRuntime"
>>>>>
>>>>>
>>>>> value="jndi(TransactionManagerName=aries:services/javax.transaction.TransactionManager)"/>
>>>>>            <property name="openjpa.Multithreaded"
>>>>>                      value="true"/>
>>>>>            <property name="openjpa.TransactionMode"
>>>>>                      value="managed"/>
>>>>>            <!--<property name="openjpa.ConnectionFactoryMode"
>>>>>                      value="managed"/>-->
>>>>>        </properties>
>>>>>
>>>>>
>>>>>
>>>>> Blueprint config of the DataSource
>>>>> ****************************************
>>>>>    <service auto-export="interfaces" ref="jta">
>>>>>        <service-properties>
>>>>>            <entry key="transactional" value="true"/>
>>>>>        </service-properties>
>>>>>    </service>
>>>>>
>>>>>    <service auto-export="interfaces" ref="jta">
>>>>>        <service-properties>
>>>>>            <entry key="transactional" value="true"/>
>>>>>        </service-properties>
>>>>>    </service>
>>>>>
>>>>> Any idea is welcome.
>>>>>
>>>>>
>>>>> 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
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> *Ioannis Canellos*
>>>> *
>>>>  http://iocanel.blogspot.com
>>>>
>>>> Apache Karaf <http://karaf.apache.org/> Committer & PMC
>>>> Apache ServiceMix <http://servicemix.apache.org/>  Committer
>>>> *
>>>>
>>>
>>
>>
>>
>> --
>> Cheers,
>> Guillaume Nodet
>> ------------------------
>> Blog: http://gnodet.blogspot.com/
>> ------------------------
>> Open Source SOA
>> http://fusesource.com
>
>

Reply via email to