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