Nature of public static final methods

Given the fact all java services in IS are public static final, i have a question in this regard.
If a java service is invoked by more than one clients at the same time, my understanding is that each client will ahve a thread and all these threads are going to access the SAME copy of the java service/method, since static methods are class memebers and not instance members.
This poses a serious threat if a java service is exposed for client invokations.
Is someway this taken care in webMethods arhitecture?


Good question.

Threads receive their own copy of automatic var.s, regardless of whether or not the method is static.

So, the data may differ, but the possibilities of behaviour will not.

Client access security is handled by ACLs.


Thanks for your response.
Can u explain me a bit what do u mean when u say automatic variables ? how will each thread have an instance of static method(java service) ?


Hey DG,
Automatic var.s mean the same thing as local var.s.

  If I explained this stuff to you I'd just be repeating, ad hoc., stuff I've read elsewhere; so I think it's better that you do some reading up on Java instead. The forums at are excellent for these sorts of questions about Java fundamentals (for your questions look at the SCJP forum), and there are plenty of tutorials at to quickly scan for answers. 

  If these aren't helpful let me know and I'll dig up something more for you. 

  On the other hand, you should do only do all of the above out of curiousity for learning more about Java. Integration Server *is* secure and questioning its design is something which belongs to academic interest, unless you've found a real problem somewhere. It's something which many companies rely on. [img][/img] 


Hi DG,
Each client invoking the static method will be executed in a different thread. The method variables will not be shared by different clients. Every client will have his own copy of method variables. You need to worry about the class variables, if any, that are being accessed in the static method. The class variables are shared between the threads (clients) but not the method variables.
hope this helps.

Can you please tell why all java services are final and static and also why all the services class is final