tomee-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "John D. Ament" <john.d.am...@gmail.com>
Subject Re: JPA/Hibernate entity auto discovery
Date Thu, 06 Jun 2013 01:32:39 GMT
So, the root META-INF?
What happens when it goes in WEB-INF/classes/META-INF ?


On Wed, Jun 5, 2013 at 9:29 PM, Andrew Clarke <spam@clarke.ca> wrote:

> Thanks again John.  I'll include an example TestManagerBean.java below.
>  My persistence.xml is in my WAR file under /META-INF.
>
> package com.example;
>
> import com.example.account.Application;
> import com.example.system.SystemPropertiesBean;
> import org.apache.commons.logging.Log;
> import org.apache.commons.logging.LogFactory;
> import javax.ejb.EJB;
> import javax.ejb.Local;
> import javax.ejb.Remote;
> import javax.ejb.Stateless;
> import javax.persistence.*;
>
> @Stateless( name = "TestManager" )
> @Local( TestManager.class )
> @Remote( TestManagerRemote.class )
> public class TestManagerBean implements TestManager {
>     private static final Log logger =
> LogFactory.getLog(TestManagerBean.class);
>
>     @EJB(beanName = "AnotherEJBManager")
>     private AnotherEJBManager anotherEJBManager;
>
>     @EJB(beanName = "SystemProperties")
>     private SystemPropertiesBean systemProperties;
>
>     @PersistenceContext(unitName = "ExampleEngine")
>     private EntityManager entityManager;
>
>     @PersistenceUnit(unitName = "ExampleEngine")
>     private EntityManagerFactory entityManagerFactory;
>
>     public String passItBack(String inOut) {
>         logger.debug("TestManagerBean.inOut('" + inOut + "')");
>         Application entity = entityManager.find(Application.class,
> "8f466445ab");
>         logger.debug("Entity: " + entity);
>         return anotherEJBManager.passItBack(inOut);
>     }
> }
>
>
> On 2013-06-05, at 20:43, "John D. Ament" <john.d.ament@gmail.com> wrote:
>
> > Hmm yeah I missed that part.
> >
> > So wait, is your persistence.xml in your war file somewhere? Where is it?
> > How do you get a reference to your entity manager?
> >
> >
> > On Wed, Jun 5, 2013 at 8:39 PM, Andrew Clarke <spam@clarke.ca> wrote:
> >
> >> Yes I did, thanks.  I did mention that in the email, but I know there
> was
> >> a lot in there.  This was the syntax of my persistence.xml when I tried
> >> that:
> >>
> >> <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_1_0.xsd"
> version="1.0">
> >>    <persistence-unit name="ExampleEngine">
> >>        <provider>org.hibernate.ejb.HibernatePersistence</provider>
> >>        <exclude-unlisted-classes>false</exclude-unlisted-classes>
> >>
> >>        <properties>
> >>            <property name="hibernate.show_sql" value="true"/>
> >>            <property name="hibernate.format_sql" value="true"/>
> >>            <property name="hibernate.hbm2ddl.auto" value="update"/>
> >>        </properties>
> >>    </persistence-unit>
> >> </persistence>
> >>
> >> - Andrew.
> >>
> >> On 2013-06-05, at 20:30, John D. Ament <john.d.ament@gmail.com> wrote:
> >>
> >>> Andrew,
> >>>
> >>> Did you try using the setting exclude-unlisted-classes, with the value
> of
> >>> false?
> >>>
> >>> John
> >>>
> >>>
> >>> On Wed, Jun 5, 2013 at 8:27 PM, Andrew Clarke <spam@clarke.ca> wrote:
> >>>
> >>>> I've set up my database in TomEE such that it works fine with SQL
> Query.
> >>>> When I attempted to do a simple entityManager.find() as a JPA test,
I
> >> got
> >>>> the following error:
> >>>> java.lang.RuntimeException: org.apache.cxf.interceptor.Fault: The bean
> >>>> encountered a non-application exception; nested exception is:
> >>>>       java.lang.IllegalArgumentException: Unknown entity:
> >>>> com.example.account.Application
> >>>> I've gotten around this by adding
> >>>> <class>com.example.account.Application</class> to my persistence.xml
> >> file.
> >>>> However, in JBoss everything Just Works thanks to annotations and I
> >> don't
> >>>> need to use XML to set up my entities at all.  On the one hand it's
a
> >> bit
> >>>> of a bummer to add in all that XML but I can handle it if I have to.
> >> I'm
> >>>> experiencing some other issues though so I'm wondering if there's a
> >> bigger
> >>>> configuration problem that I should address.
> >>>>
> >>>> I've also tried using
> >>>> <exclude-unlisted-classes>false</exclude-unlisted-classes>
and
> <property
> >>>> name="hibernate.archive.autodetection" value="class" /> but neither
of
> >>>> these seems to have made a difference for me.
> >>>>
> >>>> Because of the custom JNDI naming system in my code, and to keep
> things
> >>>> simple, I've been slowly adding in files into
> >> WEB-INF/classes/com/example.
> >>>> I could package them into WEB-INF/lib/example.jar but then I think I'd
> >>>> have to rewrite a LOT of JNDI naming, and my (limited) understanding
> is
> >>>> that it's not necessary to package the classes into a JAR for any
> >> reason.
> >>>>
> >>>> Here are some of my other files:
> >>>>
> >>>> persistence.xml:
> >>>>
> >>>> <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_1_0.xsd"
> >> version="1.0">
> >>>>   <persistence-unit name="ExampleEngine">
> >>>>       <provider>org.hibernate.ejb.HibernatePersistence</provider>
> >>>>       <class>com.example.account.Application</class>
> >>>>
> >>>>       <properties>
> >>>>           <property name="hibernate.show_sql" value="true"/>
> >>>>           <property name="hibernate.format_sql" value="true"/>
> >>>>           <property name="hibernate.hbm2ddl.auto" value="update"/>
> >>>>       </properties>
> >>>>   </persistence-unit>
> >>>> </persistence>
> >>>>
> >>>>
> >>>> tomee.xml:
> >>>>
> >>>> <?xml version="1.0" encoding="UTF-8"?>
> >>>> <tomee>
> >>>>       <Resource id="example_db_prod" type="DataSource">
> >>>>                       JdbcDriver  com.mysql.jdbc.Driver
> >>>>                       JdbcUrl
> >>>> jdbc:mysql://localhost:3306/example_db_prod?autoReconnect=true
> >>>>                       UserName myusername
> >>>>                       Password mypassword
> >>>>                       validationQuery = SELECT 1
> >>>>                       JtaManaged true
> >>>>       </Resource>
> >>>> </tomee>
> >>>>
> >>>> Thank you very much for any help you can provide.  It's a very steep
> >>>> learning curve trying to do this migration and I keep running into
> >>>> roadblock after roadblock.
> >>>>
> >>>> - Andrew.
> >>
> >>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message