Hi,

I documented how someone good build a small OpenJPA example:
http://www.vogella.de/articles/JavaPersistenceAPI/article.html

Thank you for your support. Best regards, Lars

2008/3/12, Lars Vogel <[EMAIL PROTECTED]>:
>
> Hi Mike,
>
> thank you, I must have been blind. Indeed the OpenJPA was missing.
>
> Thank you very, very much and sorry for such a blind spot on my side.
>
> I'll write a short summery on how to set a small OpenJPA up and post it
> later to this newsgroup for future reference.
>
> Best regards, Lars
>
>
> 2008/3/12, Michael Dick <[EMAIL PROTECTED]>:
> >
> > The only thing I noticed was that you didn't have OpenJPA specified on
> > the classpath. You must have it specified somewhere, unless you've imported
> > all the source.
> >
> > I'm sorry to say that I just replied to you personally, so the users
> > mailing list hasn't seen these last few replies. If you'd like to post the
> > sample you're using back to [email protected], then maybe someone
> > else will have better luck than I did.
> >
> > -Mike
> >
> > On Wed, Mar 12, 2008 at 3:53 PM, Lars Vogel <[EMAIL PROTECTED]>
> > wrote:
> >
> > > Hi Mike,
> > >
> > > thank you. I don't see a difference to "my" setup.
> > >
> > > If anyone wants to look at my project I uploaded it:
> > > http://www.jnerlich.de/JPAExample.zip
> > >
> > > Cheers, Lars
> > >
> > >
> > > 2008/3/12, Michael Dick <[EMAIL PROTECTED]>:
> > > >
> > > > Hi Lars,
> > > >
> > > > Here's what I'm using. I don't see anything obviously wrong the ones
> > > > you sent me though.
> > > >
> > > > -Mike
> > > >
> > > > On Wed, Mar 12, 2008 at 2:52 PM, Lars Vogel <
> > > > [EMAIL PROTECTED]> wrote:
> > > >
> > > > > Hi Mike,
> > > > >
> > > > > I'm running it in Eclipse. Yes, please send me your .classpath and
> > > > > .project files. Mine are also attached for reference.
> > > > >
> > > > > Best regards, Lars
> > > > >
> > > > > <?xml version="1.0" encoding="UTF-8"?>
> > > > > <projectDescription>
> > > > >     <name>hellopja</name>
> > > > >     <comment></comment>
> > > > >     <projects>
> > > > >     </projects>
> > > > >     <buildSpec>
> > > > >         <buildCommand>
> > > > >             <name>org.eclipse.jdt.core.javabuilder</name>
> > > > >             <arguments>
> > > > >             </arguments>
> > > > >         </buildCommand>
> > > > >     </buildSpec>
> > > > >     <natures>
> > > > >         <nature>org.eclipse.jdt.core.javanature</nature>
> > > > >     </natures>
> > > > > </projectDescription>
> > > > >
> > > > > <?xml version="1.0" encoding="UTF-8"?>
> > > > > <classpath>
> > > > >     <classpathentry kind="src" path="src"/>
> > > > >     <classpathentry kind="con" path="
> > > > > org.eclipse.jdt.launching.JRE_CONTAINER"/>
> > > > >     <classpathentry kind="lib" path="C:/Documents and
> > > > > Settings/vogella/Desktop/Documents/08_MyDocuments/15_EclipseLibs/openjpa/commons-
> > > > > collections-3.2.jar"/>
> > > > >     <classpathentry kind="lib" path="C:/Documents and
> > > > > Settings/vogella/Desktop/Documents/08_MyDocuments/15_EclipseLibs/openjpa/commons-
> > > > > lang-2.1.jar"/>
> > > > >     <classpathentry kind="lib" path="C:/Documents and
> > > > > Settings/vogella/Desktop/Documents/08_MyDocuments/15_EclipseLibs/openjpa/commons-
> > > > > logging-1.0.4.jar"/>
> > > > >     <classpathentry kind="lib" path="C:/Documents and
> > > > > Settings/vogella/Desktop/Documents/08_MyDocuments/15_EclipseLibs/openjpa/commons-
> > > > > pool-1.3.jar"/>
> > > > >     <classpathentry kind="lib" path="C:/Documents and
> > > > > Settings/vogella/Desktop/Documents/08_MyDocuments/15_EclipseLibs/openjpa/derby-
> > > > > 10.2.2.0.jar"/>
> > > > >     <classpathentry kind="lib" path="C:/Documents and
> > > > > Settings/vogella/Desktop/Documents/08_MyDocuments/15_EclipseLibs/openjpa/geronimo-jms_1.1_spec-
> > > > > 1.0.1.jar"/>
> > > > >     <classpathentry kind="lib" path="C:/Documents and
> > > > > Settings/vogella/Desktop/Documents/08_MyDocuments/15_EclipseLibs/openjpa/geronimo-jpa_3.0_spec-
> > > > > 1.0.jar"/>
> > > > >     <classpathentry kind="lib" path="C:/Documents and
> > > > > Settings/vogella/Desktop/Documents/08_MyDocuments/15_EclipseLibs/openjpa/geronimo-jta_1.1_spec-
> > > > > 1.1.jar"/>
> > > > >     <classpathentry kind="lib" path="C:/Documents and
> > > > > Settings/vogella/Desktop/Documents/08_MyDocuments/15_EclipseLibs/openjpa/serp-
> > > > > 1.13.1.jar"/>
> > > > >     <classpathentry kind="output" path="bin"/>
> > > > > </classpath>
> > > > >
> > > > >
> > > > > 2008/3/12, Michael Dick <[EMAIL PROTECTED]>:
> > > > >
> > > > > > Hi Lars,
> > > > > >
> > > > > > How are you running the program? You mention projects so you're
> > > > > > probably using either Eclipse or Netbeans. I tried something 
> > > > > > similar to what
> > > > > > you've posted and it worked for me in Eclipse. I can send you the 
> > > > > > .classpath
> > > > > > and .project files if that will help.
> > > > > >
> > > > > > -Mike
> > > > > >
> > > > > > On Wed, Mar 12, 2008 at 10:22 AM, Lars Vogel <
> > > > > > [EMAIL PROTECTED]> wrote:
> > > > > >
> > > > > > > Hi Venkatesch,
> > > > > > >
> > > > > > > I did also modify the orginal persistence.xml so that is
> > > > > > > exactly the same as
> > > > > > > my example to be able to run Main.java directly without the
> > > > > > > ant script.
> > > > > > >
> > > > > > > So in both cases I'm not using the build.xml file anymore. The
> > > > > > > only
> > > > > > > difference I see is that one version runs the other not.
> > > > > > >
> > > > > > > Best egards, Lars
> > > > > > >
> > > > > > > 2008/3/12, Addanki, Venkatesh <[EMAIL PROTECTED]
> > > > > > > >:
> > > > > > > >
> > > > > > > > Lars,
> > > > > > > >
> > > > > > > > One obvious difference between your code and the out of box
> > > > > > > sample is
> > > > > > > > the way the driver class and its properties are specified.
> > > > > > > build.xml vs
> > > > > > > > persistence.xml.  It looks like the
> > > > > > > org.apache.derby.jdbc.EmbeddedDriver
> > > > > > > > class from your persistence.xml is not being found or the
> > > > > > > connection url
> > > > > > > > is not getting through.
> > > > > > > >
> > > > > > > > Regards
> > > > > > > >
> > > > > > > > V
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > -----Original Message-----
> > > > > > > > From: Lars Vogel [mailto:[EMAIL PROTECTED]
> > > > > > > > Sent: Wednesday, March 12, 2008 9:22 AM
> > > > > > > > To: [email protected]
> > > > > > > > Subject: JPA - Null pointer exception
> > > > > > > >
> > > > > > > > Hi,
> > > > > > > >
> > > > > > > > I trying to make JPA work for me. The delivered example
> > > > > > > works without
> > > > > > > > problems, I can also successfully modify this example. The
> > > > > > > example was
> > > > > > > > based on http://openjpa.apache.org/quick-start.html.
> > > > > > > >
> > > > > > > > But if I create a new project the Entity Manager returns
> > > > > > > only a NULL
> > > > > > > > value.
> > > > > > > > Error:
> > > > > > > >
> > > > > > > > Exception in thread "main" java.lang.NullPointerException
> > > > > > > >     at hellojpa.Main.main(Main.java:44)
> > > > > > > >
> > > > > > > >
> > > > > > > > I use the same files as in the working example. All jars are
> > > > > > > included in
> > > > > > > > the build path. I assume that the persistence.xml is not
> > > > > > > found but to my
> > > > > > > > knowledge the classpath is correctly maintained. The path
> > > > > > > .../bin
> > > > > > > > contains the directory META-INF and here the file
> > > > > > > persistence.xml.
> > > > > > > >
> > > > > > > > Any advice? I must be missing something very simple but
> > > > > > > cannot figure it
> > > > > > > > out. For example coding please see below.
> > > > > > > >
> > > > > > > > Best regards, Lars
> > > > > > > >
> > > > > > > > File structure:
> > > > > > > >
> > > > > > > > src
> > > > > > > >   - hellojpa
> > > > > > > >      - Main.java
> > > > > > > >      - Message.java
> > > > > > > > - META-INF
> > > > > > > >       - persistence.xml
> > > > > > > >
> > > > > > > > Same structure in the bin directory.
> > > > > > > >
> > > > > > > >
> > > > > > > > -----------persistence.xml..............
> > > > > > > >
> > > > > > > > <?xml version="1.0" encoding="UTF-8"?>
> > > > > > > > <!--
> > > > > > > >     Licensed to the Apache Software Foundation (ASF) under
> > > > > > > one
> > > > > > > >     or more contributor license agreements.  See the NOTICE
> > > > > > > file
> > > > > > > >     distributed with this work for additional information
> > > > > > > >     regarding copyright ownership.  The ASF licenses this
> > > > > > > file
> > > > > > > >     to you under the Apache License, Version 2.0 (the
> > > > > > > >     "License"); you may not use this file except in
> > > > > > > compliance
> > > > > > > >     with the License.  You may obtain a copy of the License
> > > > > > > at
> > > > > > > >
> > > > > > > >     http://www.apache.org/licenses/LICENSE-2.0
> > > > > > > >
> > > > > > > >     Unless required by applicable law or agreed to in
> > > > > > > writing,
> > > > > > > >     software distributed under the License is distributed on
> > > > > > > an
> > > > > > > >     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> > > > > > > >     KIND, either express or implied.  See the License for
> > > > > > > the
> > > > > > > >     specific language governing permissions and limitations
> > > > > > > >     under the License.
> > > > > > > > -->
> > > > > > > > <persistence xmlns="http://java.sun.com/xml/ns/persistence";
> > > > > > > >     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> > > > > > > version="1.0">
> > > > > > > >
> > > > > > > >     <!--
> > > > > > > >         A persistence unit is a set of listed persistent
> > > > > > > entities as
> > > > > > > > well
> > > > > > > >         the configuration of an EntityManagerFactory. We
> > > > > > > configure each
> > > > > > > >         example in a separate persistence-unit.
> > > > > > > >     -->
> > > > > > > >     <persistence-unit name="hellojpa"
> > > > > > > >         transaction-type="RESOURCE_LOCAL">
> > > > > > > >         <!--
> > > > > > > >             The default provider can be OpenJPA, or some
> > > > > > > other product.
> > > > > > > >             This element is optional if OpenJPA is the only
> > > > > > > JPA provider
> > > > > > > >             in the current classloading environment, but can
> > > > > > > be
> > > > > > > > specified
> > > > > > > >             in cases where there are multiple JPA
> > > > > > > implementations
> > > > > > > > available.
> > > > > > > >         -->
> > > > > > > >
> > > > > > > >         <provider>
> > > > > > > >
> > > > > > > org.apache.openjpa.persistence.PersistenceProviderImpl
> > > > > > > >         </provider>
> > > > > > > >
> > > > > > > >
> > > > > > > >         <!-- We must enumerate each entity in the
> > > > > > > persistence unit -->
> > > > > > > >         <class>hellojpa.Message</class>
> > > > > > > >
> > > > > > > >         <properties>
> > > > > > > >             <property name="openjpa.ConnectionURL"
> > > > > > > >
> > > > > > > >
> > > > > > > value="jdbc:derby:C:/DerbyDatabases/hellojpa-database5;create=true"
> > > > > > >  />
> > > > > > > >             <property name="openjpa.ConnectionDriverName"
> > > > > > > >                 value="org.apache.derby.jdbc.EmbeddedDriver"
> > > > > > > />
> > > > > > > >             <property name="openjpa.ConnectionUserName"
> > > > > > > value="" />
> > > > > > > >             <property name="openjpa.ConnectionPassword"
> > > > > > > value="" />
> > > > > > > >
> > > > > > > >             <!--
> > > > > > > >                 Tell OpenJPA to automatically create tables
> > > > > > > in the
> > > > > > > > database
> > > > > > > >                 for entities. Note that this should be
> > > > > > > disabled when
> > > > > > > >                 running against a production database, since
> > > > > > > you
> > > > > > > > probably
> > > > > > > >                 don't want to be altering the schema at
> > > > > > > runtime.
> > > > > > > >             -->
> > > > > > > >             <property name="openjpa.jdbc.SynchronizeMappings
> > > > > > > "
> > > > > > > >                 value="buildSchema" />
> > > > > > > >
> > > > > > > >         </properties>
> > > > > > > >     </persistence-unit>
> > > > > > > >
> > > > > > > > </persistence>
> > > > > > > >
> > > > > > > >
> > > > > > > > -----------Main.java
> > > > > > > >
> > > > > > > > /*
> > > > > > > >   * Licensed to the Apache Software Foundation (ASF) under
> > > > > > > one
> > > > > > > >   * or more contributor license agreements.  See the NOTICE
> > > > > > > file
> > > > > > > >   * distributed with this work for additional information
> > > > > > > >   * regarding copyright ownership.  The ASF licenses this
> > > > > > > file
> > > > > > > >   * to you under the Apache License, Version 2.0 (the
> > > > > > > >   * "License"); you may not use this file except in
> > > > > > > compliance
> > > > > > > >   * with the License.  You may obtain a copy of the License
> > > > > > > at
> > > > > > > >   *
> > > > > > > >   * http://www.apache.org/licenses/LICENSE-2.0
> > > > > > > >   *
> > > > > > > >   * Unless required by applicable law or agreed to in
> > > > > > > writing,
> > > > > > > >   * software distributed under the License is distributed on
> > > > > > > an
> > > > > > > >   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> > > > > > > >   * KIND, either express or implied.  See the License for
> > > > > > > the
> > > > > > > >   * specific language governing permissions and limitations
> > > > > > > >   * under the License.
> > > > > > > >   */
> > > > > > > > package hellojpa;
> > > > > > > >
> > > > > > > > import java.util.*;
> > > > > > > > import javax.persistence.*;
> > > > > > > >
> > > > > > > >
> > > > > > > > /**
> > > > > > > >   * A very simple, stand-alone program that stores a new
> > > > > > > entity in the
> > > > > > > >   * database and then performs a query to retrieve it.
> > > > > > > >   */
> > > > > > > > public class Main {
> > > > > > > >
> > > > > > > >     @SuppressWarnings("unchecked")
> > > > > > > >     public static void main(String[] args) {
> > > > > > > >         System.out.println(System.getProperty("
> > > > > > > java.class.path"));
> > > > > > > >         // Create a new EntityManagerFactory using the
> > > > > > > System
> > > > > > > > properties.
> > > > > > > >         // The "hellojpa" name will be used to configure
> > > > > > > based on the
> > > > > > > >         // corresponding name in the
> > > > > > > META-INF/persistence.xml file
> > > > > > > >         EntityManagerFactory factory = Persistence.
> > > > > > > >             createEntityManagerFactory("hellojpa",
> > > > > > > > System.getProperties());
> > > > > > > >
> > > > > > > >         // Create a new EntityManager from the
> > > > > > > EntityManagerFactory. The
> > > > > > > >         // EntityManager is the main object in the
> > > > > > > persistence API, and
> > > > > > > > is
> > > > > > > >         // used to create, delete, and query objects, as
> > > > > > > well as access
> > > > > > > >         // the current transaction
> > > > > > > >         EntityManager em = factory.createEntityManager();
> > > > > > > >
> > > > > > > >         // Begin a new local transaction so that we can
> > > > > > > persist a new
> > > > > > > > entity
> > > > > > > >         em.getTransaction().begin();
> > > > > > > >
> > > > > > > >         // Create and persist a new Message entity
> > > > > > > >         em.persist(new Message("Hello Persistence!"));
> > > > > > > >
> > > > > > > >         // Commit the transaction, which will cause the
> > > > > > > entity to
> > > > > > > >         // be stored in the database
> > > > > > > >         em.getTransaction().commit();
> > > > > > > >
> > > > > > > >         // It is always good practice to close the
> > > > > > > EntityManager so that
> > > > > > > >         // resources are conserved.
> > > > > > > >         em.close();
> > > > > > > >
> > > > > > > >         // Create a fresh, new EntityManager
> > > > > > > >         EntityManager em2 = factory.createEntityManager();
> > > > > > > >
> > > > > > > >         // Perform a simple query for all the Message
> > > > > > > entities
> > > > > > > >         Query q = em2.createQuery("select m from Message
> > > > > > > m");
> > > > > > > >
> > > > > > > >         // Go through each of the entities and print out
> > > > > > > each of their
> > > > > > > >         // messages, as well as the date on which it was
> > > > > > > created
> > > > > > > >         for (Message m : (List<Message>) q.getResultList())
> > > > > > > {
> > > > > > > >             System.out.println(m.getMessage()
> > > > > > > >                 + " (created on: " + m.getCreated() + ")");
> > > > > > > >         }
> > > > > > > >
> > > > > > > >         // Again, it is always good to clean up after
> > > > > > > ourselves
> > > > > > > >         em2.close();
> > > > > > > >         factory.close();
> > > > > > > >     }
> > > > > > > > }
> > > > > > > >
> > > > > > > > -----------
> > > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > >
> > > >
> > > >
> > >
> >
>

Reply via email to