Related to the usage of shared Singletons in Tomcat: In fact my shared
Singleton class provides other webapps with one factory that produces
service objects (those are instantiated every time a request is made). Those
service objects will handle DTOs and will convert them to normal database
entities before persisting. All of these entity operations are however
transactionized, so do I really need Thread handling for this kind of stuff?
In my opinion transations might be sufficient to ensure clean access.
The only point to consider is: do I have to synchronize anything anymore?
Sure at the beginning I have to ensure the Singleton gets its factory
injected. From then on every webapp should be able to access the factory's
produce-methods without the need for synchronization?!
----- Original Message -----
From: "Johnny Kewl" <[EMAIL PROTECTED]>
To: "Tomcat Users List" <users@tomcat.apache.org>
Sent: Monday, June 18, 2007 6:08 PM
Subject: Re: Share one singleton across webapps
Kevin, I dont know Eclipse,
But it sound very much the same as what Netbeans does.
ie it will also give every web app its own library.
Being able to share, is sometimes handy, its an alternative to context
sharing, and JNDI, for instance if you want to set up your own dB pool....
BUT.... as a rule of thumb, what these IDE's are doing, is right. Each web
app should gets its own set of libraries.
The thing to remember is that Tomcat is multi - threaded.
When each web app has its own lib, you dont need to worry about that, well
not as much anyway.... BUT now you do.... you have shared single instance
library, and if 30 simultaneous servlets start up, and they all want that
library, weird stuff can happen.
So now, the next thing you have to do is make sure its thread safe, and
then once you have done that, you may find when the servlets are busy,
they all slow down.
Anyway, thats why I said, use them "unwillingly"... because if you not
carefull, you may be making the slowest Tomcat server ever ;)
----- Original Message -----
From: "Kevin Wilhelm" <[EMAIL PROTECTED]>
To: "Tomcat Users List" <users@tomcat.apache.org>
Sent: Monday, June 18, 2007 3:58 PM
Subject: Re: Share one singleton across webapps
It works! Thanks!
The problem has been that each webapp had its own shared-lib jar-file,
because I am developing in Eclipse. So Eclipse needs to know which
classes I am accessing :/ At the end there were 3 times the same
jar-file: 1st webapp, 2nd webapp, tomcat/lib.
Removing the jars from the webapps and leaving the one in tomcat/lib
solved the problem.
However this is very disgusting. Every time I am deploying the 2 webapps
to Tomcat, the jars are copied as well. I have to delete them manually,
so that only the jar in Tomcat/lib is used. Is there some workaround for
this? Should I use Ant for deploying then? But I won't be able to debug
the webapps from within my IDE anymore since I am avoiding Eclipse's
deployment mechanisms.
-------- Original-Nachricht --------
Datum: Mon, 18 Jun 2007 15:40:36 +0200
Von: "Johnny Kewl" <[EMAIL PROTECTED]>
An: "Tomcat Users List" <users@tomcat.apache.org>
Betreff: Re: Share one singleton across webapps
The typical form is like this
public class SingletonObject
{
private SingletonObject(){}
public static SingletonObject getSingletonObject()
{
if (ref == null)
// it's ok, we can call this constructor
ref = new SingletonObject();
return ref;
}
private static SingletonObject ref;
}
If thats in Tomcat/lib.... it should share
Notice the use of static.... ie there is only one, no matter how many
times
its started.
...and the check for null.... which is how it determines it needs to
make
one instance if there is non...
Thats the trick.... a normal class which is what I imagine you trying,
will
load once..... but instance many times.
Hope that helps... try not use them unless you really have to.
----- Original Message -----
From: "Kevin Wilhelm" <[EMAIL PROTECTED]>
To: <users@tomcat.apache.org>
Sent: Monday, June 18, 2007 3:12 PM
Subject: Share one singleton across webapps
>I managed to get a jar file shared across two webapps in my Tomcat 6.
> Inside there is a class that represents a Singleton.
>
> The problem: the singleton class is instantiated by the first webapp
> and
> then again instantiated in the second webapp. So there are 2
> representations of the class and it is not really shared.
>
> There has to be a way to let the first webapp instantiate the
> singleton
> and set some property so that the second webapp can use the singleton
> and read the property. How do I achieve this?
> --
> Ist Ihr Browser Vista-kompatibel? Jetzt die neuesten
> Browser-Versionen downloaden: http://www.gmx.net/de/go/browser
>
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
--
GMX FreeMail: 1 GB Postfach, 5 E-Mail-Adressen, 10 Free SMS.
Alle Infos und kostenlose Anmeldung: http://www.gmx.net/de/go/freemail
---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]