In the end I changed the back-end code to J2EE (POJO entities and
stateless session beans to handle the persistence) and combined this
with the GWT code into a single Netbeans project.  I set JPA to use
JTA (Java Transaction API) rather than resource local. No issues with
classpaths.

The GWT services can then can call the session beans to access the
entity data and because I'm using JTA, I don't need to worry about
explicitly starting and ending transactions, unless I have a specific
need to.

The original problem was that resource injection was not appropriate
for the framework that was using, hence the null pointer exception
when attempting to create the entity manager.

Cheers,

Jin



On Feb 18, 5:08 pm, Jin <[email protected]> wrote:
> Hi All,
>
> I'm fairly new to GWT and attempting to use GWT with JPA 2.0 , but
> have come across various problems.  I'm using the setup below:
> * Entity classes with annotations in a JAR on the GWT app classpath
> * JPA controllers (largely generated classes that perform the actual
> JPA actions, such as persisting objects to the database) in the same
> JAR as the entity classes.
> * GWT RPC calls (the server side accesses the JPA controllers)
>
> I'm using Eclipse as my IDE with the GWT plugin.
>
> A couple of questions:
> * Can the development mode server (Jetty I believe) support JPA? (all
> the relevant libraries are on the GWT project's classpath, so there
> are no compile errors)  Or do I need to use an external server, and if
> so what type would be appropriate?
> * How do I structure the files, e.g. where do I put persistence.xml?
> Do I keep it with the entity classes from the other project or do I
> need it to be with the GWT project?
>
> The following things are working fine so far:
> * RPC calls
> * Creating an instance of an entity class
> * Creating an instance of the JPA controllers
>
> However, the application throws a NullPointerException when the JPA
> controller attempts to get an entity manager with which to persist the
> entity.
>
> Below are the first few lines of the exception.
>
> java.lang.NullPointerException
>         at
> com.axle8.entity.jpaController.MarketerUserJpaController.getEntityManager(MarketerUserJpaController.java:
> 31)
>         at
> com.axle8.entity.jpaController.MarketerUserJpaController.create(MarketerUserJpaController.java:
> 37)
>         at
> com.axle8.web.server.SignUpServiceImpl.signUpMarketer(SignUpServiceImpl.java:
> 99)
>
> I do NOT get the "No entity manager for persistence unit XYZ".
>
> Below is the code where the exception occurs.  Line 31 (where the
> exception occurs) is the following line:
> return emf.createEntityManager();
>
> ------------------------------------------------------------------------------------------------------------------------
>
>     public MarketerUserJpaController() {
>         emf = Persistence.createEntityManagerFactory("Axle8EntityPU");
>     }
>     private EntityManagerFactory emf = null;
>
>     public EntityManager getEntityManager() {
>         return emf.createEntityManager();
>     }
>
>     public void create(MarketerUser marketerUser) {
>         EntityManager em = null;
>         try {
>             em = getEntityManager();
>             em.getTransaction().begin();
>             em.persist(marketerUser);
>             //System.out.println(marketerUser.getUserId());
>             em.getTransaction().commit();
>         } finally {
>             if (em != null) {
>                 em.close();
>             }
>         }
>     }
>
> ------------------------------------------------------------------------------------------------------------------------
>
> The entity classes and JPA controllers have been tested successfully
> on a J2EE server (Glassfish).
>
> I'm thinking I need to deploy the whole thing to such a server.
>
> Any assistance would be greatly appreciated! Please let me know
> whether any further information would help
>
> Regards,
>
> Jin

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to