[prev in list] [next in list] [prev in thread] [next in thread] 

List:       axis-user
Subject:    RE: one way message callback to Apache Axis?
From:       "Zhou Jian Han" <zhan () ariodata ! com>
Date:       2004-10-27 17:28:24
Message-ID: F152162DB1B0D2458EA395AD074DE1C402891F () orion ! ariodata ! com
[Download RAW message or body]


I read the JAX-RPC spec, looks like it has asynchronus callback API in the spec 2.0, \
the current Axis is follow the JAX-RPC1.1 spec, Does that means current Axis1.1 does \
not support asynchronous callback and future Axis 2.0 will implement this \
asynchronous callback feature?  Am I right? 

Thanks,
Georgia

-----Original Message-----
From: Zhou Jian Han [mailto:zhan@ariodata.com]
Sent: Friday, October 22, 2004 11:47 AM
To: axis-user@ws.apache.org
Subject: one way message callback to Apache Axis?


Hello,
Does anybody using one way message and call back in Axis client side?  Do I have to \
use JMS? But I can't because of I use gSoap(c/c++) as my server SOAP. I use Axis as \
SOAP client. I tried to send a oneway call back function from server, here are the \
steps I did, I must be missing somthing, the client didn't invoked by the server: 1. \
I using WSDL2Java --server-side --skeletonDeploy true  xxx.wsdl, so it can generate \
skeleton too. 2.In the xxx.wsdl, there is only one one-way function named "handle", \
please see below: <portType name="EventPortType">
 <operation name="handle">
  <documentation>handles asynchronous events</documentation>
  <input message="tns:handleRequest"/>
 </operation>
</portType>
3. on client side, I first invoke handle() to server, then I create a skeleton \
object, and hope server callback can invoke handle() on this object. but nothing \
printout. see below my simple test code:  public static void main(String [] args) \
throws Exception {  // Make a service
  Event service = new EventLocator();
  // Now use the service to get a stub which implements the SDI.
  EventPortType port = service.getEvent();
  // Make the actual call
  port.handle(Myevent.value4);
  EventSkeleton skel= new EventSkeleton();
  Thread t = new Thread();
  t.sleep(2000);
 }}

4. I put some print out under handle( )  of EventImpl.java, but unfortunally I didn't \
get anything print out, I must be missing something, what should I do after I new the \
EventSkelton object, so it can wait there and get invoked by server?

Also I'm sure that after I invoke server, and server does try to invoke client, see \
below packet from server, POST / HTTP/1.1
Host: 
User-Agent: gSOAP/2.7
Content-Type: text/xml; charset=utf-8
Content-Length: 458
Connection: keep-alive
SOAPAction: "event"

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" \
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" \
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns="urn:event"> <SOAP-ENV:Body \
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> \
<ns:handle><event>EVENT-A</event></ns:handle> </SOAP-ENV:Body></SOAP-ENV:Envelope> 

Any help will be great appreciated!

Thanks,
Georgia


["winmail.dat" (application/ms-tnef)]

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic