axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tom Ziemer <t.zie...@dkfz-heidelberg.de>
Subject Re: Example of setting client side handler?
Date Mon, 09 May 2005 14:21:45 GMT
Hi Vjeran,

I'm sorry but I cannot really help you. I *think* it should work, though 
you might have to create new calls in your threads before invoking the 
service. Couldn't you just write some test cases to figure out, whether 
or not you get the same call instance?

Sorry - I know that wasn't very helpful,

Regards,
Tom

Vjeran Marcinko wrote:
> Hi Tom.
> 
> I hope you could answer this since I'm so tired of searching the web for
> answer (I've been doing it for days now), although I find it very strange
> because I need very common stuff, and strangely nobody gave me suitable
> answer...
> 
> Client stubs in general are singletons, meaning, I don't instantiate new one
> during each call, but all simultaneous client threads can use it
> concurrently. Meaning, client stubs are thread-safe, and all client see is
> just stub's service interface.
> 
> Meaning, following piece of code (stub instantiation) is usually executed
> during *container startup* :
> FooServiceLocator fooServiceLocator = new FooServiceLocator();
> FooPort fooPort = fooServiceLocator.getFooPort(...url...);
> 
> ...and later, all threads just access this single instance "fooPort"
> concurrently whenever they need to perform remote action in a form:
> fooPort.doSomeAction();
> 
> But, since every simultaneous call to this action can contain different
> attachments/usernames/passwords, I would need something like:
> fooPort.doSomeAction(attachments, username, password);
> 
> But, since it would be changing of service interface, which is not possible,
> there has to be some concurrent way to achieve this (usually it's some
> ThreadLocal way when one needs to pass context values not described by
> method signature).
> 
> My question is - since all these values (attachments, username...) can be
> set on Call instance, if I fetch this Call by :
> Call call = ((Stub)fooPort).getCall();
> call.setAttachments(attachments)
> before I call :
> fooPort.doSomeAction();
> 
> is this gonna be OK ? If concurrent thread fetches the same Call instance
> that it's all no good.
> 
> -Vjeran
> 
> ----- Original Message ----- 
> From: "Tom Ziemer" <t.ziemer@dkfz-heidelberg.de>
> To: <axis-user@ws.apache.org>
> Sent: Monday, May 09, 2005 3:02 PM
> Subject: Re: Example of setting client side handler?
> 
> 
> 
>>Hi,
>>
>>I'm not sure I understand you correctly - do you want to access the the
>>call using an ant-generated stub? If that's the case, you can try this:
>>
>>FooServiceLocator fooServiceLocator = new FooServiceLocator();
>>FooServiceSoapBindingStub fooServiceStub = null;
>>try
>>{
>>fooServiceStub = (FooServiceSoapBindingStub)
>>fooServiceLocator.getFooService();
>>// getting the call:
>>Call call = fooServiceStub._getCall();
>>// username
>>fooServiceStub.setUserName("Dunno");
>>...
>>}
>>...
>>
>>Hope this helps,
>>
>>Regards,
>>Tom
>>
>>
> 
> 
> 
> 

Mime
View raw message