Lev,

My bad.  Actually it is the Stripes filter w/ appropriate arguments in 
the web.xml that indirectly initializes the Stripersist module.

Your exception is occurring b/c Stripersist has not been initialized 
(yes - I know - this is the understatement of the week ;-)

Unfortunately I didn't notice that my tests had code that created a 
MockServletContext that setup Stripes and included in the 
Extension.Packages the argument "org.stripesstuff.stripersist" that 
initializes Stripersist.

I had code strewn across a heirarchy of classes to provide different 
types of test frameworks... hopefully this snippet helps:

        Map<String, String> filterParams = new HashMap<String, String>();
        filterParams.put("Extension.Packages",  
"org.stripesstuff.stripersist");
        MockServletContext servletContext = new 
MockServletContext("WebTest");
        servletContext.addFilter(StripesFilter.class, "StripesFilter", 
filterParams);
        servletContext.setServlet(DispatcherServlet.class, 
"StripesDispatcher", null);
        Stripersist.requestInit();

BTW after the save you will explicitly need to call:

       userDao.commit(userObject);

As Stripersist automatically begins a transaction for you but doesn't 
automatically commit it for you (for obvious reasons... e.g. rollback).

--Nikolaos



Lev wrote:
> following jocke's suggestion, i added the following:
>
> src/test/resources/META-INF/persistence.xml
>
> this yields:
>
> target/test-classes/META-INF/persistence.xml
>
> however, the same NullPointerException persists on
> the call to:
>
> Stripersist.getEntityManager()
>
>
>
> On Thu, Jul 8, 2010 at 4:39 PM, Jocke Eriksson <jockeeriks...@msn.com> wrote:
>   
>> The path should be for junit
>> tests target/test-classes/META-INF/persistence.xml
>>
>>     
>>> Date: Thu, 8 Jul 2010 01:58:28 -0500
>>> From: d...@plektos.com
>>> To: stripes-users@lists.sourceforge.net
>>> Subject: Re: [Stripes-users] Stripersist.getEntityManager() -->
>>> NullPointerException
>>>
>>> apologies: i forgot to attach my persistence.xml file to the
>>> previous email. please find it attached. thanks!
>>>
>>> On Thu, Jul 8, 2010 at 1:57 AM, Lev <d...@plektos.com> wrote:
>>>       
>>>> hi,
>>>>
>>>> i am trying to test code from "stripes... and java web development
>>>> is fun again". specifically, i have imported the email_36 into a
>>>> netbeans maven project.
>>>>
>>>> i have written a simple JUnit test for the project file:
>>>> com.dao.impl.stripersist.UserDaoImpl. i have attached the
>>>> test file.
>>>>
>>>> further, i have attached my persistence.xml file. it is located in:
>>>> target/classes/META-INF/persistence.xml
>>>>
>>>> the error that i receive when executing the aforementioned
>>>> JUnit test is:
>>>>
>>>> javax.persistence.PersistenceException: No Persistence provider for
>>>> EntityManager named stripesbook_MavenEmail36WebApp_war_1.0-SNAPSHOTPU
>>>>
>>>> the exception is thrown at line 34 of the attached Junit test
>>>> file. specifically, the call that triggers the error is:
>>>>
>>>> stripersist.init(url);
>>>>
>>>> i have confirmed that the URL is valid -- if i change it to something
>>>> malformed, i receive an exception complaining that the file cannot
>>>> be found.
>>>>
>>>> thank you again for your help,
>>>> lev
>>>>
>>>>
>>>> On Wed, Jul 7, 2010 at 10:19 AM, Aaron Porter <aa...@mongus.com> wrote:
>>>>         
>>>>> Lev,
>>>>> Sounds like you're getting closer! Now it looks like you need to check
>>>>> your JPA configuration - make sure your persistence.xml is correct and
>>>>> you've got all the jars to support it. I use Hibernate as the JPA
>>>>> provider and PostgreSQL as the database.
>>>>>
>>>>> Aaron
>>>>>
>>>>> On 07/06/2010 11:42 PM, Lev wrote:
>>>>>           
>>>>>> hi aaron,
>>>>>>
>>>>>> thank you for your help.
>>>>>>
>>>>>> 1) my persistence.xml ends up in the project root at:
>>>>>>
>>>>>> target/classes/META-INF/persistence.xml
>>>>>>
>>>>>> this appears to be correct to me. please correct me if
>>>>>> i am wrong.
>>>>>>
>>>>>> 2) i implemented the calls that you suggested in the
>>>>>> junit setUpClass() and tearDownClass() methods.
>>>>>>
>>>>>> it appears that Stripersist is successfully instantiated.
>>>>>> however, the call "stirpersist.init(url)" fails with the
>>>>>> following exception:
>>>>>>
>>>>>> javax.persistence.PersistenceException: No Persistence provider for
>>>>>> EntityManager named...
>>>>>>
>>>>>> i believe that the URL is correctly formed. it points to
>>>>>> the persistence.xml file in target/classes/META-INF.
>>>>>>
>>>>>> thank you again for your help,
>>>>>> lev
>>>>>>
>>>>>> On Wed, Jul 7, 2010 at 12:56 AM, Aaron Porter<aa...@mongus.com>
>>>>>>  wrote:
>>>>>>
>>>>>>             
>>>>>>> Lev,
>>>>>>> The META-INF directory that contains persistence.xml needs to end up
>>>>>>> at
>>>>>>> /WEB-INF/classes/META-INF. It looks like the way you've set it up it
>>>>>>> would be at /WEB-INF/classes/resources/META-INF. What I was proposing
>>>>>>> was to create a new source folder called resources. In Eclipse you do
>>>>>>> that by clicking File->New->Source Folder and enter resources as the
>>>>>>> folder name.
>>>>>>>
>>>>>>> I'm guessing that even if you do have the persistence.xml file in the
>>>>>>> correct location you'll get an error about trying to use Stripersist
>>>>>>> without the Interceptor part of it because you're trying to test with
>>>>>>> JUnit without a servlet container. It can be done but you'll need to
>>>>>>> call some methods in Stripersist yourself. Create a new instance of
>>>>>>> Stripersist and call init(new URL("path/to/persistence.xml")). Call
>>>>>>> requestInit() to initialize for the current thread then call
>>>>>>> requestComplete() to clean up when you're done.
>>>>>>>
>>>>>>> Aaron
>>>>>>>
>>>>>>>
>>>>>>> On 07/06/2010 10:25 PM, Lev wrote:
>>>>>>>
>>>>>>>               
>>>>>>>> hi,
>>>>>>>>
>>>>>>>> i moved persistence.xml to src/resources/META-INF.
>>>>>>>>
>>>>>>>> however, the original problem persists -- i receive a
>>>>>>>> NullPointerException on the call:
>>>>>>>>
>>>>>>>> Stripersist.getEntityManager();
>>>>>>>>
>>>>>>>> further information: i'm getting this exception when
>>>>>>>> executing a Junit test of a DAO class -- i'm not
>>>>>>>> executing web code (action beans, etc). would that
>>>>>>>> contribute to the problem?
>>>>>>>>
>>>>>>>> any suggestions welcomed.
>>>>>>>>
>>>>>>>> thank you,
>>>>>>>> lev
>>>>>>>>
>>>>>>>>
>>>>>>>> On Tue, Jul 6, 2010 at 11:59 AM, Aaron Porter<aa...@mongus.com>
>>>>>>>>  wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>>                 
>>>>>>>>> Oops! Thanks for catching that Marcus!
>>>>>>>>>
>>>>>>>>> Aaron
>>>>>>>>>
>>>>>>>>> On 07/06/2010 09:09 AM, M.C.S. wrote:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>                   
>>>>>>>>>> Hi,
>>>>>>>>>>
>>>>>>>>>> Aaron Porter wrote:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>                     
>>>>>>>>>>> If you're using Eclipse I recommend creating a source directory
>>>>>>>>>>> named
>>>>>>>>>>> resources and then creating a subdirectory named WEB-INF and
>>>>>>>>>>> placing
>>>>>>>>>>> persistence.xml in there.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>                       
>>>>>>>>>> Surely just a typo, but it surely should be named META-INF. I
>>>>>>>>>> really
>>>>>>>>>> hate these standard folder names :-)
>>>>>>>>>>
>>>>>>>>>> Best wishes
>>>>>>>>>> Marcus
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> ------------------------------------------------------------------------------
>>>>>>>>>> This SF.net email is sponsored by Sprint
>>>>>>>>>> What will you do first with EVO, the first 4G phone?
>>>>>>>>>> Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
>>>>>>>>>> _______________________________________________
>>>>>>>>>> Stripes-users mailing list
>>>>>>>>>> Stripes-users@lists.sourceforge.net
>>>>>>>>>> https://lists.sourceforge.net/lists/listinfo/stripes-users
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>                     


------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
Stripes-users mailing list
Stripes-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/stripes-users

Reply via email to