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
>>>>>
>>>>>
>>>>>
>>>> ------------------------------------------------------------------------------
>>>> 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
>>>
>>>
>> ------------------------------------------------------------------------------
>> 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
>
package stripesbook.dao.impl.stripersist;

import java.io.File;
import java.net.URL;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.stripesstuff.stripersist.Stripersist;
import static org.junit.Assert.*;
import stripesbook.model.User;

/**
 * UserDaoImplTest.java
 * @version Jul 6, 2010
 */
public class UserDaoImplTest {

    protected static Stripersist stripersist;
    public static final String persistenceFile =
            "/home/lev/projects/stripes/code/MavenEmail36WebApp/"
            + "target/classes/META-INF/persistence.xml";

    public UserDaoImplTest() {
    }

    @BeforeClass
    public static void setUpClass() throws Exception {
        stripersist = new Stripersist();
        // System.out.println("Opening persistence file:\n" + persistenceFile);
        URL url = (new File(persistenceFile)).toURI().toURL();
        System.out.println("Url:\n" + url);
        stripersist.init(url);
        Stripersist.requestInit();
    }

    @AfterClass
    public static void tearDownClass() throws Exception {
        Stripersist.requestComplete();
    }

    @Before
    public void setUp() {
    }

    @After
    public void tearDown() {
    }

    @Test
    public void testSave() {
        System.out.println("save");
        User user = new User();
        user.setFirstName("MyFirstName");
        user.setLastName("MyLastName");
        user.setPassword("Pass123");
        user.setUsername("MyUsername");
        boolean noExceptions = true;
        try {
            UserDaoImpl instance = new UserDaoImpl();
            instance.save(user);
        } catch (Exception e) {
            noExceptions = false;
        }
        assertTrue(noExceptions);
    }


    /**
     * Test of findByUsername method, of class UserDaoImpl.
     */
    /*
    @Test
    public void testFindByUsername() {
        System.out.println("findByUsername");
        String username = "";
        UserDaoImpl instance = new UserDaoImpl();
        User expResult = null;
        User result = instance.findByUsername(username);
        assertEquals(expResult, result);
        // TODO review the generated test code and remove the default call to fail.
        fail("The test case is a prototype.");
    }
     *
     */

}
------------------------------------------------------------------------------
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