Hi Tobias,
This is just generally a bad practice to package "business" libraries
in the container, and .war files should ideally be self-contained
(aside from dependency on a subset of JEE APIs). So the best way of
sharing is actually including your jar in a war. For controlled
installations I guess you may bend the rules if you are comfortable
with consequences. So if that works for you and you do not distribute
your wars to the outside world this setup may be ok.
At the practical level there may be some nasty class loading issues,
but it looks like you have avoided them by deploying Cayenne and your
data objects at the same container level.
Regarding the listener... I think of it as an example of how you might
setup Cayenne in a web app environment. There is a vast space of JEE
configuration possibilities, so it can't fit them all. So if you don't
need it, don't use it. I personally don't, as my context scoping is
done via an IoC container.
Andrus
On Mar 15, 2010, at 3:45 PM, Tobias Schoessler wrote:
> Hi,
>
> I have many web apps sharing the same cayenne/mapping objects. I
> want to
> share my cayenne classes among these web apps. I have packaged the
> classes
> successfully in a jar together with the cayenne.xml using a jndi
> data source
> and the Map xml file. I have put this jar in the shared lib level of
> tomcat.
>
>
> Now every web app deployed can use the mapping files without any
> cayenne
> reference in its local WEB-INF lib. Super!
>
> I can obviously even use
>
> DataContext dataContext = ServletUtil.getSessionContext(session);
>
> to bind the DataContext to the session.
>
> I am a bit worried now - is it really this easy?
>
> I have not configured a
> org.objectstyle.cayenne.conf.WebApplicationListener
> in the web apps web.xml.
>
> Is it only used for finding the cayenne.xml in the Web-INF scope? I
> have
> packaged the cayenne.xml with the jar in the global scope of tomcat I
> therefore would not need this discovery feature.
>
> Or is this listener used to clean up the DataContexts attached to
> the web
> apps session? Do I need this Listener? Will the DataContexts
> attached lto
> the session via ServletUtil leak if I do not have the WebApplication
> listener defined?
>
> Is this setup save?
>
> thanks a lot.
>
> Tobias
This archive was generated by hypermail 2.0.0 : Tue Mar 16 2010 - 10:56:55 EDT