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" <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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.
>>
>>