You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@aries.apache.org by Robert Wheeler <rw...@gmail.com> on 2013/07/23 19:39:01 UTC

EntityManager is null

I have a very basic sample I am trying to insert a record into a database.
 I keep getting a NullPointer when I try to persist my record and when I
debug I see that the EntityManager is null.  I am including my
persistence.xml and blueprint.xml files and any help would be appreciated.


<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0"
xmlns:camel="http://camel.apache.org/schema/blueprint"
xmlns:jpa="http://aries.apache.org/xmlns/jpa/v1.1.0"
xmlns:tx="http://aries.apache.org/xmlns/transactions/v1.0.0">

<bean id="personDAO"
class="com.novatus.simpletransaction.dao.PersonDAO">
<tx:transaction method="*" value="Required" />
<jpa:context property="entityManager" unitname="simpleTrans" />
</bean>
<bean id="personRoute"
class="com.novatus.simpletransaction.route.PersonRoute" />

<camelContext xmlns="http://camel.apache.org/schema/blueprint">
<routeBuilder ref="personRoute" />
</camelContext>

   <bean id="dataSource" class="org.postgresql.ds.PGPoolingDataSource"
destroy-method="close">
      <property name="serverName" value="localhost/database"/>
      <property name="user" value="username"/>
      <property name="password" value="password"/>
      <property name="dataSourceName" value="myConnectionPool"/>
      <property name="initialConnections" value="2"/>
      <property name="maxConnections" value="4" />
  </bean>

  <service interface="javax.sql.DataSource" ref="dataSource">
    <service-properties>
            <entry key="osgi.jndi.service.name" value="jdbc/postgresds"/>
    </service-properties>
  </service>

</blueprint>

<?xml version="1.0" encoding="UTF-8" ?>
<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="simpleTrans" transaction-type="JTA">
    <description>Persistence unit for the example blogging
application</description>


<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
    <jta-data-source>osgi:service/javax.sql.DataSource/(
osgi.jndi.service.name=jdbc/postgresds)</jta-data-source>
    <class>com.novatus.simpletransaction.entity.Person</class>
    <exclude-unlisted-classes>true</exclude-unlisted-classes>
     <properties>
<property name="openjpa.Log" value="DefaultLevel=TRACE,Runtime=TRACE,
Tool=TRACE,SQL=TRACE,Enhance=TRACE" />
    </properties>

  </persistence-unit>
</persistence>



Thanks Robert

RE: EntityManager is null

Posted by Tom Leung <to...@netage.com.hk>.
A lot of reason causes null pointer exception, 

post the detail error log, so let us know what the problem you encounter.

 

Best Rgds,

 

Tom

 

 

From: Robert Wheeler [mailto:rwheeler48@gmail.com] 
Sent: Wednesday, July 24, 2013 1:39 AM
To: user@aries.apache.org
Subject: EntityManager is null

 

I have a very basic sample I am trying to insert a record into a database.
I keep getting a NullPointer when I try to persist my record and when I
debug I see that the EntityManager is null.  I am including my
persistence.xml and blueprint.xml files and any help would be appreciated.

 

 

<?xml version="1.0" encoding="UTF-8"?>

<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0"

xmlns:camel="http://camel.apache.org/schema/blueprint"

xmlns:jpa="http://aries.apache.org/xmlns/jpa/v1.1.0"

xmlns:tx="http://aries.apache.org/xmlns/transactions/v1.0.0">

 

<bean id="personDAO"

class="com.novatus.simpletransaction.dao.PersonDAO">

<tx:transaction method="*" value="Required" />

<jpa:context property="entityManager" unitname="simpleTrans" />

</bean>

<bean id="personRoute"
class="com.novatus.simpletransaction.route.PersonRoute" />

  

<camelContext xmlns="http://camel.apache.org/schema/blueprint">

<routeBuilder ref="personRoute" />

</camelContext>

 

   <bean id="dataSource" class="org.postgresql.ds.PGPoolingDataSource"
destroy-method="close">

      <property name="serverName" value="localhost/database"/>

      <property name="user" value="username"/>

      <property name="password" value="password"/>

      <property name="dataSourceName" value="myConnectionPool"/>

      <property name="initialConnections" value="2"/>

      <property name="maxConnections" value="4" />

  </bean>

  

  <service interface="javax.sql.DataSource" ref="dataSource">

    <service-properties>

            <entry key="osgi.jndi.service.name
<http://osgi.jndi.service.name/> " value="jdbc/postgresds"/>

    </service-properties>

  </service>

 

</blueprint>

 

<?xml version="1.0" encoding="UTF-8" ?>

<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="simpleTrans" transaction-type="JTA">

    <description>Persistence unit for the example blogging
application</description>

 

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

 
<jta-data-source>osgi:service/javax.sql.DataSource/(osgi.jndi.service.name
<http://osgi.jndi.service.name/> =jdbc/postgresds)</jta-data-source>

    <class>com.novatus.simpletransaction.entity.Person</class>

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

     <properties>

<property name="openjpa.Log" value="DefaultLevel=TRACE,Runtime=TRACE,

Tool=TRACE,SQL=TRACE,Enhance=TRACE" />

    </properties>

   

  </persistence-unit>

</persistence>

 

 

 

Thanks Robert


Re: EntityManager is null

Posted by Graham Charters <gc...@gmail.com>.
Hi Robert,

I think Tom was offering to help if you can provide logs, but in their
absence....

Have you tried putting the data source definition in a separate bundle from
the bean using jpa:context?  You may have some kind of cycle in your
dependencies given the jpa:context requires the datasource that you're
providing in the same blueprint.

If this then works but fails intermittently then there may be a life-cycle
issue (in the Aries code) between data source registration and
jpa:context/unit injection.  You should be able to use a service dependency
to resolve that (having a service ref from jpa:context bundle to a service
provided by the data source bundle).

I hope this helps.

Regards, Graham.


On 24 July 2013 02:37, Tom Leung <to...@netage.com.hk> wrote:

> A lot of reason causes null pointer exception, ****
>
> post the detail error log, so let us know what the problem you encounter.*
> ***
>
> ** **
>
> Best Rgds,****
>
> ** **
>
> Tom****
>
> ** **
>
> ** **
>
> *From:* Robert Wheeler [mailto:rwheeler48@gmail.com]
> *Sent:* Wednesday, July 24, 2013 1:39 AM
> *To:* user@aries.apache.org
> *Subject:* EntityManager is null****
>
> ** **
>
> I have a very basic sample I am trying to insert a record into a database.
>  I keep getting a NullPointer when I try to persist my record and when I
> debug I see that the EntityManager is null.  I am including my
> persistence.xml and blueprint.xml files and any help would be appreciated.
> ****
>
> ** **
>
> ** **
>
> <?xml version="1.0" encoding="UTF-8"?>****
>
> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"****
>
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"****
>
> xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0"****
>
> xmlns:camel="http://camel.apache.org/schema/blueprint"****
>
> xmlns:jpa="http://aries.apache.org/xmlns/jpa/v1.1.0"****
>
> xmlns:tx="http://aries.apache.org/xmlns/transactions/v1.0.0">****
>
> ** **
>
> <bean id="personDAO"****
>
> class="com.novatus.simpletransaction.dao.PersonDAO">****
>
> <tx:transaction method="*" value="Required" />****
>
> <jpa:context property="entityManager" unitname="simpleTrans" />****
>
> </bean>****
>
> <bean id="personRoute"
> class="com.novatus.simpletransaction.route.PersonRoute" />****
>
>   ****
>
> <camelContext xmlns="http://camel.apache.org/schema/blueprint">****
>
> <routeBuilder ref="personRoute" />****
>
> </camelContext>****
>
>  ****
>
>    <bean id="dataSource" class="org.postgresql.ds.PGPoolingDataSource"
> destroy-method="close">****
>
>       <property name="serverName" value="localhost/database"/>****
>
>       <property name="user" value="username"/>****
>
>       <property name="password" value="password"/>****
>
>       <property name="dataSourceName" value="myConnectionPool"/>****
>
>       <property name="initialConnections" value="2"/>****
>
>       <property name="maxConnections" value="4" />****
>
>   </bean>****
>
>   ****
>
>   <service interface="javax.sql.DataSource" ref="dataSource">****
>
>     <service-properties>****
>
>             <entry key="osgi.jndi.service.name" value="jdbc/postgresds"/>*
> ***
>
>     </service-properties>****
>
>   </service>****
>
> ** **
>
> </blueprint>****
>
> ** **
>
> <?xml version="1.0" encoding="UTF-8" ?>****
>
> <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="simpleTrans" transaction-type="JTA">****
>
>     <description>Persistence unit for the example blogging
> application</description>****
>
> ** **
>
>
> <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
> ****
>
>     <jta-data-source>osgi:service/javax.sql.DataSource/(
> osgi.jndi.service.name=jdbc/postgresds)</jta-data-source>****
>
>     <class>com.novatus.simpletransaction.entity.Person</class>****
>
>     <exclude-unlisted-classes>true</exclude-unlisted-classes>****
>
>      <properties>****
>
> <property name="openjpa.Log" value="DefaultLevel=TRACE,Runtime=TRACE,****
>
> Tool=TRACE,SQL=TRACE,Enhance=TRACE" />****
>
>     </properties>****
>
>    ****
>
>   </persistence-unit>****
>
> </persistence>****
>
> ** **
>
> ** **
>
> ** **
>
> Thanks Robert****
>