Gregory Prokter wrote:
Much oblidged, Jeff. I was thinking to implement something like that, so ifi am thinking to implement a simple prototype of API for HTTP one-way invocations modeling request-response MEP:
it works this way great!
I'm still researching and would love to hear on the subject from Alek or Ant
or the other authors. I recall seeing suggestion like this (2 Queues: for
In and Out) in one of the 2001/2002 presentations by the IBM WSIF folks re.
async support in WSIF.
Future<ResultType> result = service.method(param1, param2)
for example:
Future<String> result = service.echoString("test")Future is a class in util.concurrent (now part of JDK5 but there is also backport to JDK 1.4 with some limitations <http://www.mathcs.emory.edu/dcl/util/backport-util-concurrent/>) and i think that this could be quite elegant solution to async results
that would work with WS-Addressing enabled services (so message-id can be used for correlation) and would not require JMS.
any thoughts?
thanks,
alek
I've got another question and would appreciate an answer:
Can a single client use multiple Providers to multiple Services? For ex. A client calls WSDL1 over SOAP/HTTP and WSDL2 over JMS and WSDL3 over Java. I don't see why not, since the binding in in WSDL, but haven't run any examples with this case and would like to hear howto's and any gotchas in doing this.
Best to all,
Greg
-----Original Message----- From: Jeff Greif [mailto:[EMAIL PROTECTED] Sent: Wednesday, December 29, 2004 5:56 PM To: [email protected] Subject: Re: Async invocation in WSIF
I'm not sure JMS transport is required for the invoked web service endpoint. I think there is a test example which uses the JMS queue as the destination for the response, including persistence if the client happens to be shut down when the response arrives, but uses a JMS <-> HTTP bridge to invoke the "ordinary" web service endpoint synchronously.
Jeff
----- Original Message ----- From: "Gregory Prokter" <[EMAIL PROTECTED]> To: <[email protected]> Sent: Wednesday, December 29, 2004 4:08 PM Subject: RE: Async invocation in WSIF
WSIFExceptionJeff-
The answer to your Q is YES.
Ok, after studying the WSIF code, it appears that the transport indeed has
to be JMS in order for WSIFPort_ApacheAxis.supportsAsync() which is called
by WSIFOperation_ApacheAxis.executeRequestResponseAsync() to return TRUE.
Otherwise, it return FALSE and
WSIFOperation_ApacheAxis.executeRequestResponseAsync() throws
all("asynchronous operations not available"); as indeed happened in my case.
This is very disappointing since not ever Web Service supports JMS, but
ofsupport HTTP.
-----Original Message----- From: Jeff Greif [mailto:[EMAIL PROTECTED] Sent: Wednesday, December 29, 2004 12:40 PM To: [email protected] Subject: Re: Async invocation in WSIF
Did you look at tests/async in the wsif tree? Jeff ----- Original Message ----- From: "Gregory Prokter" <[EMAIL PROTECTED]> To: <[email protected]> Sent: Wednesday, December 29, 2004 11:54 AM Subject: RE: Async invocation in WSIF
Thanks Jeff.
Using an asynch transport, like a JMS provider or SOAP Provider on top
farJMS is a possible approach to async invocation, but IMO it's rather a
topleass advantageous approach than having async invocation in the WSIFitself,
regardless of the synch trasport protocol, like HTTP you're running on
thatof. See an excellent ref on the subject:
http://www.voelter.de/data/articles/ijwr04.pdf. I thought and hoped
theWSIF.executeRequestResponseAsync() is just that, an async invocation in
WSIF, and in my view if it doesn't work it will undermine considerably
believe,value of WSIF.
Greg
-----Original Message----- From: Jeff Greif [mailto:[EMAIL PROTECTED] Sent: Wednesday, December 29, 2004 11:33 AM To: [email protected] Subject: Re: Async invocation in WSIF
This answer is not definitive, but may be helpful nonetheless. I
JMSbut am not certain, that you need to have a JMS implementation backing
asynchronous calls in WSIF. This means you need to build Axis with a
earlierimplementation (such as OpenJMS) in the class path and similarly makethat
implementation available in your classpath when WSIF is used. In
necessary,incarnations of WSIF, there was some documentation of what was
theexamplesbut I have not looked recently to see if it's still there.
Jeff ----- Original Message ----- From: "Gregory Prokter" <[EMAIL PROTECTED]> To: <[email protected]> Cc: <[EMAIL PROTECTED]> Sent: Wednesday, December 29, 2004 9:14 AM Subject: Async invocation in WSIF
Hello WSIF experts!
Happy New 2005 Year to all!
Recently, I discovered WSIF and it looks awesome! Have run some
with it. Not everything works smoothly and I will have to dive into
opencode myself, which I will do very reluctantly, since I'd ratherconcentrate
on my project rather than WSIF code, but this is the nature of the
invocation,code.
Now to my question. When I ran an example involving asynch
org.apache.wsif.providers.soap.apacheaxis.WSIFOperation_ApacheAxis.executeRei.e.implements
ok = operation.executeRequestResponseAsync(input, responseHandler);
/* there is a definition of: public class AsyncResponseHandler
WSIFResponseHandler {} */
I got this cute Exception:
org.apache.wsif.WSIFException: asynchronous operations not available [java] at
com.edrient.manager.samples.wsif.DynamicInvoker.invokeMethod(DynamicInvoker.questResponseAsync(Unknown Source) [java] at
com.edrient.manager.samples.wsif.DynamicInvoker.main(DynamicInvoker.java:105java:291) [java] at
) [java] Exception in thread "main" [java] Java Result: 1
So, is WSIFOperation.executeRequestResponseAsync() avail or not? What versions support it? I got the lattest stable (downloaded around mid December 04).
Need you help ASAP!
Thanks a lot in advance,
Greg
-- The best way to predict the future is to invent it - Alan Kay
