Lev,
So in case I wasn't totally clear... in looking at your attached code...
if you remove the lines:
protected static Stripersist stripersist;
public static final String persistenceFile =
"/home/lev/projects/stripes/code/MavenEmail36WebApp/"
+ "target/classes/META-INF/persistence.xml";
... and also remove these lines:
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);
... it should work assuming your Dao code is OK.
And "/META-INF/persistence.xml" is on your class path i.e. as a
subfolder under your classes folder then it should work.
If it doesn't after doing that then please provide the complete stack
trace and the code for your Dao.
--Nikolaos
Nikolaos Giannopoulos wrote:
Lev,
OK. Well first of all as long as you have your persistence.xml in a
location on the classpath under "/META-INF/persistence.xml" then
Stripersist will find it. The second thing is that as Aaron pointed
out you should use the static methods:
Stripersist.requestInit();
...
<test code>
...
Stripersist.requestComplete();
As part of the requestInit() the entity manager factories will load
and the init() will trigger and the persistence.xml will be loaded.
The above static methods are explicitly provided so that you can use
Stripersist outside of normal Stripes request processing... so you
should not be trying to construct the URL to the persistence.xml
yourself and calling init()... that is bound to result in problems.
HTH,
--Nikolaos
Lev wrote:
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