It depends on the GF version. In v3 which is being built to be Java EE 6
compliant, EJBs can be part of a WAR file.
Regards,
-marina
Michael Bar-Sinai wrote:
> Ah! web app.
> I don't think you get any injections in a web app, you need to have an
> EJB in an EJB module and then look it up (JNDI) from the web app.
> Is there a section called "Persistence in the Web Tier" or something
> like that??
> Do look in the log files, I think Glassfish would at least complain
> about having @Stateless classes in a deployed war.
>
> You can also try to create an .ear project instead of a .war one.
>
> -- Michael
>
> On 22 Oct, 2009, at 10:36 PM, Roan Brasil Monteiro wrote:
>
>>
>> it's a web application I am trying to write, I created a bean and
>> deploy and this didn't work yet.
>>
>>
>> 2009/10/22 Michael Bar-Sinai <mich.barsinai_at_gmail.com
>> <mailto:mich.barsinai_at_gmail.com>>
>>
>> Yes, the idea is to create an EJB - as Marina said, you need a JEE
>> class to get injections.
>> So that's the whole process here: create the interface and the
>> bean, deploy, call the bean.
>> Please note that if you're just learning JPA and try to implement
>> it in a desktop application, this is not the way at all.... you
>> are writing a server-side program, right?
>>
>> --Michael
>>
>> On 22 Oct, 2009, at 10:27 PM, Roan Brasil Monteiro wrote:
>>
>>> One Question:
>>>
>>> Should I create a interface
>>>
>>> @Local
>>> DaoResourceProviderLocal {
>>> public BaseDAO getBaseDAO();
>>> }
>>>
>>> @Stateless
>>> public class DaoResourceProvider implements DaoResourceProviderLocal{
>>>
>>> @PersisteceUnit(unitName="citespacePU")
>>> EntityManagerFactory emf;
>>>
>>> ...
>>> public BaseDAO getBaseDao() {
>>> BaseDAO retVal = new BaseDAO();
>>> retVal.setEmf( emf );
>>> return retVal;
>>> }
>>>
>>> }
>>>
>>>
>>> 2009/10/22 Michael Bar-Sinai <mich.barsinai_at_gmail.com
>>> <mailto:mich.barsinai_at_gmail.com>>
>>>
>>> You can get the injected object using an EJB, and then
>>> manually inject them to the DAO:
>>> (This is from the top of my head, no JEE env here):
>>>
>>> @Local
>>> public class DaoResourceProvider implements
>>> DaoResourceProviderLocal {
>>>
>>> @PersisteceUnit(unitName="citespacePU")
>>> EntityManagerFactory emf;
>>>
>>> ...
>>> public BaseDAO getBaseDao() {
>>> BaseDAO retVal = new BaseDAO();
>>> retVal.setEmf( emf );
>>> return retVal;
>>> }
>>>
>>> ...
>>>
>>>
>>> --Michael
>>>
>>>
>>>
>>> On 22 Oct, 2009, at 10:07 PM, Roan Brasil Monteiro wrote:
>>>
>>>> Chapter 24?
>>>>
>>>> 2009/10/22 Roan Brasil Monteiro <roanbrasil_at_gmail.com
>>>> <mailto:roanbrasil_at_gmail.com>>
>>>>
>>>> Just a part. I have a JEE aplication and I would like to
>>>> split the persistence part from my JPA class. Do you
>>>> have some idea? I will take a look on the documentation.
>>>>
>>>>
>>>> 2009/10/22 Marina Vatkina <Marina.Vatkina_at_sun.com
>>>> <mailto:Marina.Vatkina_at_sun.com>>
>>>>
>>>> It depends on what you are trying to achieve in
>>>> which type of an application. Did you look at the
>>>> JPA cjapter in Java EE 5 Tutorial?
>>>>
>>>> Roan Brasil Monteiro wrote:
>>>>
>>>> How should I resolve it? How should be my class?
>>>> I am learning and I am trying to put the
>>>> persistence part in DAO class.
>>>>
>>>> 2009/10/22 Marina Vatkina
>>>> <Marina.Vatkina_at_sun.com
>>>> <mailto:Marina.Vatkina_at_sun.com>
>>>> <mailto:Marina.Vatkina_at_sun.com
>>>> <mailto:Marina.Vatkina_at_sun.com>>>
>>>>
>>>>
>>>> You can't inject anything in a class that is
>>>> neither a Main class,
>>>> nor a JavaEE component.
>>>>
>>>> -marina
>>>>
>>>>
>>>> Roan Brasil Monteiro wrote:
>>>>
>>>> I have a class BaseDAO as bellow and I am
>>>> getting
>>>> NullPointerException on EntityManager em =
>>>> emf.createEntityManager(); line from
>>>> BaseDAO class, Can someone
>>>> help me how to fix it?
>>>>
>>>> public class BaseDAO<T> {
>>>>
>>>> @PersistenceUnit(unitName = "citespacePU")
>>>> EntityManagerFactory emf;
>>>> public List<T> ListCountry(){
>>>> EntityManager em =
>>>> emf.createEntityManager();
>>>> try{
>>>> Query q =
>>>> em.createQuery("Select c from Country c ");
>>>> List<Country> c =
>>>> q.getResultList();
>>>> return (List<T>) c;
>>>> }finally{
>>>> if (em != null &&
>>>> em.isOpen()) {
>>>> em.close();
>>>> }
>>>> } }
>>>>
>>>>
>>>> }
>>>>
>>>> I have my Jersey resource class:
>>>>
>>>> @Path("/user/")
>>>> public class UserResource {
>>>> @GET
>>>> @Produces("text/plain")
>>>> public String registerUser(){
>>>> BaseDAO<Country>
>>>> countryDAO = new BaseDAO<Country>();
>>>> List<Country> c =
>>>> countryDAO.ListCountry();
>>>> String y = "";
>>>> for(Country x: c){
>>>> y = y + ":" +x.getName();
>>>> }
>>>>
>>>> return "[Country List]:"+y;
>>>>
>>>> }
>>>>
>>>> -- Atenciosamente,
>>>>
>>>> Roan Brasil Monteiro
>>>> http://roanbrasil.wordpress.com/
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Atenciosamente,
>>>>
>>>> Roan Brasil Monteiro
>>>> http://roanbrasil.wordpress.com/
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Atenciosamente,
>>>>
>>>> Roan Brasil Monteiro
>>>> http://roanbrasil.wordpress.com/
>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Atenciosamente,
>>>>
>>>> Roan Brasil Monteiro
>>>> http://roanbrasil.wordpress.com/
>>>
>>>
>>>
>>>
>>>
>>> --
>>> Atenciosamente,
>>>
>>> Roan Brasil Monteiro
>>> http://roanbrasil.wordpress.com/
>>
>>
>>
>>
>>
>> --
>> Atenciosamente,
>>
>> Roan Brasil Monteiro
>> http://roanbrasil.wordpress.com/
>
>