You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Kestonas JoJo <ku...@yahoo.com> on 2006/10/24 12:32:03 UTC

AXIS 1.4: invoke request after web service sent response to client

Hi all,
I am curious is it possible to configure AXIS server to invoke another web service as client after response is send to client.

for example Transaction like:

1. Client No. 1 invokes method of Axis service No. 1
2. Axis service No 1 responses to Client No. 1
3. Axis service No 1 invokes  web service No. 2 as Client No. 2 
4. Axis service No 1 receives response from service No. 2.
5. Transaction is commited.

Thanks in advance,
Kestas




AW: AXIS 1.4: invoke request after web service sent response to client

Posted by Stadelmann Josef <jo...@winterthur.ch>.
Martin
 
    you are right in many aspect. I am a newby to SOAP & WS, but have some years with OO and 
    CORBA too.
    
    the architectural concept for MY agent, for shure, it requires constraints.
 
    i.e. a client needs to know the service an agent can provide without knowing the details how the 
    agent gets to the answer. for the client the agent is the server, the service provider. Beneficial for
    the client. It has to know only one interface, one "contract".
 
    would you allow to say, an agent is a broker and knows where a certain service is delivered which can 
    fulfill the request of the client asking?
    
    asking just a <dumb>proxy is for sure a no-go in my scenario, - but is often seen with varying results.
 
    i.e. I would myself not ask just <any>agent when I intend to find a "cheap-air-line-ticket-provider".
    In this context I have to know those agents working close with "air-line-ticket-providers", but not more.
 
    I.e. I would myself not ask an "air-line-ticket-proving-agent" when I seek a car for which I intend 
    to spend a certain budget but expect otherwhise the best matching/performing care for my money. 
 
    As a client, asking a "cheap-airline-tickets-provider-agent" can be beneficial i.e. I do not have to sort out 
    and work-up all the varying details (datatypes) provided by various n types of  "air-line-ticket-providers"  
    to be able to get the best price/performance match. How the agent sorts out details returnd from the servers
    is the secret of the agent in charge as a server to its client.     
 
    As long as the agent can provide to the client what the client wants, all is OK for the client.
 
    I think it also a very common mistake that client's know too much about servers, which has a bad impact 
    when the server changes. But, not knowing anything about a server and just asking a <dumb>proxy points to 
    a <dumb>client, (unless the client is introspecting by intention the server on a dedicated interface.)
    This could be an administrative function for an agent in an atempt to find new matching servers, 
    new "air-line-ticket-providers". New servers to deal with when the client intends to pay. etc.etc.
 
    Implementing an agent can be of great help. it can take the burden of sorting out all kind of late changes at 
    the server side edge. Given the case that an agent deals with 3 service providers, maybe 4 tomorrow. the client 
    shall not know about this. In this case a server can shut down, the client is still served unless there are no more 
    servers, in which case the agent migth have a suggestion or the like, and tell the client  that he can wait unless 
    at least one server is back, or can cancel his request, or offers him an asynchronous callback if forseen.
 
    Should a server change and the agent does not come clear with this change. Nothing will happend to the client. 
    The client gets served. But the agent will possibly be modified to adopt for the changed/new type answer of one 
    of it's service providers. (i.e. refine the RPC or CORBA IDL to the new/changed server, then get/generate) new 
    stubs to talk properly to the new/changed server(s)).
 
    Over all, the result is a system more "resilent to change" I would also call it a more robust system.
 
    As a SOAP/WS newby, I can not yet see how to implement this best using SOAP/WS, 
    but with CORBA I would build my "expert-agent" with this architectural constraints in mind.
 
Josef        
    
 
 -----Ursprüngliche Nachricht-----
Von: Martin Gainty [mailto:mgainty@hotmail.com]
Gesendet: Dienstag, 24. Oktober 2006 14:59
An: axis-user@ws.apache.org
Betreff: Re: AXIS 1.4: invoke request after web service sent response to client



Josef-
 

Having been involved with individuals who <inadvertently> introduce race conditions on either the DB or Webapp layers
causes me to be careful around <junior> engineers who are coding SoapServices which are in fact not SOAPServices but instead are
<dumb>Proxies assembling data points from n number of SOAPclients
 
In those particular scenarios 
You will have to have introduce some sort of architectural constraint where a developer that desires a complexDataType resultset
would NOT inadvertently introduce a SOAPService which is NOT a soap service per se but is a soap client to n number of unknown SOAP Services
but WILL return the correct complexDataType from SOAPService
 
I cannot speak in a comprehensive manner as to the efficacy of CORBA
but my understanding of CORBA states that CORBA supports marshalling discrete elements of known datatype from client thru IIOP to to ORB implementor

Whether you are using CORBA or I am using RPC it seems that we both are using 2 differing implementations of the same concept that is
SomeClientRequestsDatatype -> DeliversRequestViaSomeTransportSpecificDatatype ->ServerAcknowledgesRequestAndAcksWithRequestedDataPoint
 
Perhaps you can shed some light on how CORBA could be used in this scenario?
Martin-
This e-mail communication and any attachments may contain confidential and privileged information for the use of the 
designated recipients named above. If you are not the intended recipient, you are hereby notified that you have received
this communication in error and that any review, disclosure, dissemination, distribution or copying of it or its 
contents

----- Original Message ----- 
From: Stadelmann Josef <ma...@winterthur.ch>  
To: axis-user@ws.apache.org ; Martin  <ma...@hotmail.com> Gainty 
Sent: Tuesday, October 24, 2006 8:04 AM
Subject: AW: AXIS 1.4: invoke request after web service sent response to client

Are you saying that the architectural concept of having a CLIENT going to an AGENT passing on to a SERVER is bad? :-/
In my mind an AGENT is two-fold as described by .-1
what all about is the then CORBA? :-)
Josef Stadelmann

-----Ursprüngliche Nachricht-----
Von: Martin Gainty [mailto:mgainty@hotmail.com]
Gesendet: Dienstag, 24. Oktober 2006 13:24
An: axis-user@ws.apache.org
Betreff: Re: AXIS 1.4: invoke request after web service sent response to client


would be helpful if you looked at the definition of atomic transactions and the principle of atomicity
redesigning a web service that itself is a client to another web service may possibly invite a race condition
AxisClient1 calls AxisService1 and expects output from AxisService1
AxisService1 calls AxisService2 and expects output from AxisService2
AxisService2 calls AxisService3 and expects output from AxisService3
AxisService3 calls AxisService1 (AxisService3 is contending for output for AxisService1 but so is AxisClient1)
therefore AxisService3 AND AxisClient1 are both vying for the same resource (AxisService1)

from a purely architectural perspective this is BAD DESIGN
If you want more than 1 data item then your AxisSoapService should return a complex datatype which wholly contains all of the data points you desire
 
Please read this discussion of atomicity by svend frolund
http://www.w3.org/2001/03/WSWS-popa/paper50

Martin --
This e-mail communication and any attachments may contain confidential and privileged information for the use of the 
designated recipients named above. If you are not the intended recipient, you are hereby notified that you have received
this communication in error and that any review, disclosure, dissemination, distribution or copying of it or its 
contents

----- Original Message ----- 
From: Kestonas  <ma...@yahoo.com> JoJo 
To: axis-user@ws.apache.org 
Sent: Tuesday, October 24, 2006 6:32 AM
Subject: AXIS 1.4: invoke request after web service sent response to client


Hi all,
I am curious is it possible to configure AXIS server to invoke another web service as client after response is send to client.

for example Transaction like:

1. Client No. 1 invokes method of Axis service No. 1
2. Axis service No 1 responses to Client No. 1
3. Axis service No 1 invokes  web service No. 2 as Client No. 2 
4. Axis service No 1 receives response from service No. 2.
5. Transaction is commited.

Thanks in advance,
Kestas




Re: AXIS 1.4: invoke request after web service sent response to client

Posted by Martin Gainty <mg...@hotmail.com>.
Josef-

Having been involved with individuals who <inadvertently> introduce race conditions on either the DB or Webapp layers
causes me to be careful around <junior> engineers who are coding SoapServices which are in fact not SOAPServices but instead are
<dumb>Proxies assembling data points from n number of SOAPclients

In those particular scenarios 
You will have to have introduce some sort of architectural constraint where a developer that desires a complexDataType resultset
would NOT inadvertently introduce a SOAPService which is NOT a soap service per se but is a soap client to n number of unknown SOAP Services
but WILL return the correct complexDataType from SOAPService

I cannot speak in a comprehensive manner as to the efficacy of CORBA
but my understanding of CORBA states that CORBA supports marshalling discrete elements of known datatype from client thru IIOP to to ORB implementor

Whether you are using CORBA or I am using RPC it seems that we both are using 2 differing implementations of the same concept that is
SomeClientRequestsDatatype -> DeliversRequestViaSomeTransportSpecificDatatype ->ServerAcknowledgesRequestAndAcksWithRequestedDataPoint

Perhaps you can shed some light on how CORBA could be used in this scenario?
Martin-
This e-mail communication and any attachments may contain confidential and privileged information for the use of the 
designated recipients named above. If you are not the intended recipient, you are hereby notified that you have received
this communication in error and that any review, disclosure, dissemination, distribution or copying of it or its 
contents
  ----- Original Message ----- 
  From: Stadelmann Josef 
  To: axis-user@ws.apache.org ; Martin Gainty 
  Sent: Tuesday, October 24, 2006 8:04 AM
  Subject: AW: AXIS 1.4: invoke request after web service sent response to client


  Are you saying that the architectural concept of having a CLIENT going to an AGENT passing on to a SERVER is bad? :-/
  In my mind an AGENT is two-fold as described by .-1
  what all about is the then CORBA? :-)
  Josef Stadelmann
    -----Ursprüngliche Nachricht-----
    Von: Martin Gainty [mailto:mgainty@hotmail.com]
    Gesendet: Dienstag, 24. Oktober 2006 13:24
    An: axis-user@ws.apache.org
    Betreff: Re: AXIS 1.4: invoke request after web service sent response to client


    would be helpful if you looked at the definition of atomic transactions and the principle of atomicity
    redesigning a web service that itself is a client to another web service may possibly invite a race condition
    AxisClient1 calls AxisService1 and expects output from AxisService1
    AxisService1 calls AxisService2 and expects output from AxisService2
    AxisService2 calls AxisService3 and expects output from AxisService3
    AxisService3 calls AxisService1 (AxisService3 is contending for output for AxisService1 but so is AxisClient1)
    therefore AxisService3 AND AxisClient1 are both vying for the same resource (AxisService1)

    from a purely architectural perspective this is BAD DESIGN
    If you want more than 1 data item then your AxisSoapService should return a complex datatype which wholly contains all of the data points you desire

    Please read this discussion of atomicity by svend frolund
    http://www.w3.org/2001/03/WSWS-popa/paper50

    Martin --
    This e-mail communication and any attachments may contain confidential and privileged information for the use of the 
    designated recipients named above. If you are not the intended recipient, you are hereby notified that you have received
    this communication in error and that any review, disclosure, dissemination, distribution or copying of it or its 
    contents
      ----- Original Message ----- 
      From: Kestonas JoJo 
      To: axis-user@ws.apache.org 
      Sent: Tuesday, October 24, 2006 6:32 AM
      Subject: AXIS 1.4: invoke request after web service sent response to client


      Hi all,
      I am curious is it possible to configure AXIS server to invoke another web service as client after response is send to client.

      for example Transaction like:

      1. Client No. 1 invokes method of Axis service No. 1
      2. Axis service No 1 responses to Client No. 1
      3. Axis service No 1 invokes  web service No. 2 as Client No. 2 
      4. Axis service No 1 receives response from service No. 2.
      5. Transaction is commited.

      Thanks in advance,
      Kestas



Re: AXIS 1.4: invoke request after web service sent response to client

Posted by Jesús Daniel Blázquez Carazo <jd...@gfi-info.com>.
A BPEL is a web service workflow. You can design a BPEL to invoke a web service chain, deploy it in a BPEL engine to execute the process.

In this way the first web service pass its result to the second web service ... 
  ----- Original Message ----- 
  From: Stadelmann Josef 
  To: axis-user@ws.apache.org 
  Sent: Tuesday, October 24, 2006 3:32 PM
  Subject: AW: AXIS 1.4: invoke request after web service sent response to client


  Can you please explain me what a BPEL is (Business Process Engineering Language)? What is it in your terms?
  Josef
    -----Ursprüngliche Nachricht-----
    Von: Jesús Daniel Blázquez Carazo [mailto:jdblazquez@gfi-info.com]
    Gesendet: Dienstag, 24. Oktober 2006 14:37
    An: axis-user@ws.apache.org
    Betreff: Re: AXIS 1.4: invoke request after web service sent response to client


    Have you think about the possibility of describe this web services chain as a BPEL?

      ----- Original Message ----- 
      From: Stadelmann Josef 
      To: axis-user@ws.apache.org ; Martin Gainty 
      Sent: Tuesday, October 24, 2006 2:04 PM
      Subject: AW: AXIS 1.4: invoke request after web service sent response to client


      Are you saying that the architectural concept of having a CLIENT going to an AGENT passing on to a SERVER is bad? :-/
      In my mind an AGENT is two-fold as described by .-1
      what all about is the then CORBA? :-)
      Josef Stadelmann
        -----Ursprüngliche Nachricht-----
        Von: Martin Gainty [mailto:mgainty@hotmail.com]
        Gesendet: Dienstag, 24. Oktober 2006 13:24
        An: axis-user@ws.apache.org
        Betreff: Re: AXIS 1.4: invoke request after web service sent response to client


        would be helpful if you looked at the definition of atomic transactions and the principle of atomicity
        redesigning a web service that itself is a client to another web service may possibly invite a race condition
        AxisClient1 calls AxisService1 and expects output from AxisService1
        AxisService1 calls AxisService2 and expects output from AxisService2
        AxisService2 calls AxisService3 and expects output from AxisService3
        AxisService3 calls AxisService1 (AxisService3 is contending for output for AxisService1 but so is AxisClient1)
        therefore AxisService3 AND AxisClient1 are both vying for the same resource (AxisService1)

        from a purely architectural perspective this is BAD DESIGN
        If you want more than 1 data item then your AxisSoapService should return a complex datatype which wholly contains all of the data points you desire

        Please read this discussion of atomicity by svend frolund
        http://www.w3.org/2001/03/WSWS-popa/paper50

        Martin --
        This e-mail communication and any attachments may contain confidential and privileged information for the use of the 
        designated recipients named above. If you are not the intended recipient, you are hereby notified that you have received
        this communication in error and that any review, disclosure, dissemination, distribution or copying of it or its 
        contents
          ----- Original Message ----- 
          From: Kestonas JoJo 
          To: axis-user@ws.apache.org 
          Sent: Tuesday, October 24, 2006 6:32 AM
          Subject: AXIS 1.4: invoke request after web service sent response to client


          Hi all,
          I am curious is it possible to configure AXIS server to invoke another web service as client after response is send to client.

          for example Transaction like:

          1. Client No. 1 invokes method of Axis service No. 1
          2. Axis service No 1 responses to Client No. 1
          3. Axis service No 1 invokes  web service No. 2 as Client No. 2 
          4. Axis service No 1 receives response from service No. 2.
          5. Transaction is commited.

          Thanks in advance,
          Kestas




AW: AXIS 1.4: invoke request after web service sent response to client

Posted by Stadelmann Josef <jo...@winterthur.ch>.
Can you please explain me what a BPEL is (Business Process Engineering Language)? What is it in your terms?
Josef

-----Ursprüngliche Nachricht-----
Von: Jesús Daniel Blázquez Carazo [mailto:jdblazquez@gfi-info.com]
Gesendet: Dienstag, 24. Oktober 2006 14:37
An: axis-user@ws.apache.org
Betreff: Re: AXIS 1.4: invoke request after web service sent response to client


Have you think about the possibility of describe this web services chain as a BPEL?
 

----- Original Message ----- 
From: Stadelmann Josef <ma...@winterthur.ch>  
To: axis-user@ws.apache.org ; Martin  <ma...@hotmail.com> Gainty 
Sent: Tuesday, October 24, 2006 2:04 PM
Subject: AW: AXIS 1.4: invoke request after web service sent response to client

Are you saying that the architectural concept of having a CLIENT going to an AGENT passing on to a SERVER is bad? :-/
In my mind an AGENT is two-fold as described by .-1
what all about is the then CORBA? :-)
Josef Stadelmann

-----Ursprüngliche Nachricht-----
Von: Martin Gainty [mailto:mgainty@hotmail.com]
Gesendet: Dienstag, 24. Oktober 2006 13:24
An: axis-user@ws.apache.org
Betreff: Re: AXIS 1.4: invoke request after web service sent response to client


would be helpful if you looked at the definition of atomic transactions and the principle of atomicity
redesigning a web service that itself is a client to another web service may possibly invite a race condition
AxisClient1 calls AxisService1 and expects output from AxisService1
AxisService1 calls AxisService2 and expects output from AxisService2
AxisService2 calls AxisService3 and expects output from AxisService3
AxisService3 calls AxisService1 (AxisService3 is contending for output for AxisService1 but so is AxisClient1)
therefore AxisService3 AND AxisClient1 are both vying for the same resource (AxisService1)

from a purely architectural perspective this is BAD DESIGN
If you want more than 1 data item then your AxisSoapService should return a complex datatype which wholly contains all of the data points you desire
 
Please read this discussion of atomicity by svend frolund
http://www.w3.org/2001/03/WSWS-popa/paper50

Martin --
This e-mail communication and any attachments may contain confidential and privileged information for the use of the 
designated recipients named above. If you are not the intended recipient, you are hereby notified that you have received
this communication in error and that any review, disclosure, dissemination, distribution or copying of it or its 
contents

----- Original Message ----- 
From: Kestonas  <ma...@yahoo.com> JoJo 
To: axis-user@ws.apache.org 
Sent: Tuesday, October 24, 2006 6:32 AM
Subject: AXIS 1.4: invoke request after web service sent response to client


Hi all,
I am curious is it possible to configure AXIS server to invoke another web service as client after response is send to client.

for example Transaction like:

1. Client No. 1 invokes method of Axis service No. 1
2. Axis service No 1 responses to Client No. 1
3. Axis service No 1 invokes  web service No. 2 as Client No. 2 
4. Axis service No 1 receives response from service No. 2.
5. Transaction is commited.

Thanks in advance,
Kestas




Re: AXIS 1.4: invoke request after web service sent response to client

Posted by Jesús Daniel Blázquez Carazo <jd...@gfi-info.com>.
Have you think about the possibility of describe this web services chain as a BPEL?

  ----- Original Message ----- 
  From: Stadelmann Josef 
  To: axis-user@ws.apache.org ; Martin Gainty 
  Sent: Tuesday, October 24, 2006 2:04 PM
  Subject: AW: AXIS 1.4: invoke request after web service sent response to client


  Are you saying that the architectural concept of having a CLIENT going to an AGENT passing on to a SERVER is bad? :-/
  In my mind an AGENT is two-fold as described by .-1
  what all about is the then CORBA? :-)
  Josef Stadelmann
    -----Ursprüngliche Nachricht-----
    Von: Martin Gainty [mailto:mgainty@hotmail.com]
    Gesendet: Dienstag, 24. Oktober 2006 13:24
    An: axis-user@ws.apache.org
    Betreff: Re: AXIS 1.4: invoke request after web service sent response to client


    would be helpful if you looked at the definition of atomic transactions and the principle of atomicity
    redesigning a web service that itself is a client to another web service may possibly invite a race condition
    AxisClient1 calls AxisService1 and expects output from AxisService1
    AxisService1 calls AxisService2 and expects output from AxisService2
    AxisService2 calls AxisService3 and expects output from AxisService3
    AxisService3 calls AxisService1 (AxisService3 is contending for output for AxisService1 but so is AxisClient1)
    therefore AxisService3 AND AxisClient1 are both vying for the same resource (AxisService1)

    from a purely architectural perspective this is BAD DESIGN
    If you want more than 1 data item then your AxisSoapService should return a complex datatype which wholly contains all of the data points you desire

    Please read this discussion of atomicity by svend frolund
    http://www.w3.org/2001/03/WSWS-popa/paper50

    Martin --
    This e-mail communication and any attachments may contain confidential and privileged information for the use of the 
    designated recipients named above. If you are not the intended recipient, you are hereby notified that you have received
    this communication in error and that any review, disclosure, dissemination, distribution or copying of it or its 
    contents
      ----- Original Message ----- 
      From: Kestonas JoJo 
      To: axis-user@ws.apache.org 
      Sent: Tuesday, October 24, 2006 6:32 AM
      Subject: AXIS 1.4: invoke request after web service sent response to client


      Hi all,
      I am curious is it possible to configure AXIS server to invoke another web service as client after response is send to client.

      for example Transaction like:

      1. Client No. 1 invokes method of Axis service No. 1
      2. Axis service No 1 responses to Client No. 1
      3. Axis service No 1 invokes  web service No. 2 as Client No. 2 
      4. Axis service No 1 receives response from service No. 2.
      5. Transaction is commited.

      Thanks in advance,
      Kestas




Problems sending composite data structures

Posted by Daniel Goodman <da...@worc.ox.ac.uk>.
HI,
I'm using axis 1.4 and the latest download of tomcat, and am trying to 
send a tree structure as soap. This has been causing me lots of 
problems, so I tried doing a simplified version of the idea, to see if I 
could locate the problem, however I can't get this to work either.

If I send just a leaf it works fine, however if I send the second 
(commented out) data structure I get the error at the end of this 
message. The soap that was sent is included after the error. After 
experimenting, I am coming to the conclusion that axis is trying to 
build abstract classes! What can I do to get round this? All the WSDL, 
serialises and the client stub where generated using the axis tools. Any 
help with sorting this would be greatly appreciated, I have included the 
all the code for this example.

Daniel

Exception in thread "main" AxisFault
 faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
 faultSubcode:
 faultString: org.xml.sax.SAXException: No object was found for class 
type class axisTest.Tree
 faultActor:
 faultNode:
 faultDetail:
    {http://xml.apache.org/axis/}hostname:userpc55.comlab.ox.ac.uk

org.xml.sax.SAXException: No object was found for class type class 
axisTest.Tree
    at 
org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222)
    at 
org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129)
    at 
org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
    at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown 
Source)
    at 
org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown 
Source)
    at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
Source)
    at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
    at javax.xml.parsers.SAXParser.parse(SAXParser.java:375)
    at 
org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
    at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
    at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
    at 
org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
    at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
    at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
    at org.apache.axis.client.Call.invoke(Call.java:2767)
    at org.apache.axis.client.Call.invoke(Call.java:2443)
    at org.apache.axis.client.Call.invoke(Call.java:2366)
    at org.apache.axis.client.Call.invoke(Call.java:1812)
    at 
axisTest.client.AxisTestSoapBindingStub.print(AxisTestSoapBindingStub.java:161)
    at axisTest.Client.<init>(Client.java:20)
    at axisTest.Client.main(Client.java:10)


<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope 
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><ns1:print 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns1="http://axisTest"><t href="#id0"/></ns1:print><multiRef 
id="id0" soapenc:root="0" 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xsi:type="ns2:node" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns2="axisTest"><left href="#id1"/><right 
href="#id2"/></multiRef><multiRef id="id1" soapenc:root="0" 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xsi:type="ns3:node" xmlns:ns3="axisTest" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><left 
href="#id3"/><right href="#id4"/></multiRef><multiRef id="id2" 
soapenc:root="0" 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xsi:type="ns4:leaf" xmlns:ns4="axisTest" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><value 
xsi:type="xsd:string">C</value></multiRef><multiRef id="id3" 
soapenc:root="0" 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xsi:type="ns5:leaf" xmlns:ns5="axisTest" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><value 
xsi:type="xsd:string">A</value></multiRef><multiRef id="id4" 
soapenc:root="0" 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xsi:type="ns6:leaf" xmlns:ns6="axisTest" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><value 
xsi:type="xsd:string">B</value></multiRef></soapenv:Body></soapenv:Envelope>

AW: AXIS 1.4: invoke request after web service sent response to client

Posted by Stadelmann Josef <jo...@winterthur.ch>.
Are you saying that the architectural concept of having a CLIENT going to an AGENT passing on to a SERVER is bad? :-/
In my mind an AGENT is two-fold as described by .-1
what all about is the then CORBA? :-)
Josef Stadelmann

-----Ursprüngliche Nachricht-----
Von: Martin Gainty [mailto:mgainty@hotmail.com]
Gesendet: Dienstag, 24. Oktober 2006 13:24
An: axis-user@ws.apache.org
Betreff: Re: AXIS 1.4: invoke request after web service sent response to client


would be helpful if you looked at the definition of atomic transactions and the principle of atomicity
redesigning a web service that itself is a client to another web service may possibly invite a race condition
AxisClient1 calls AxisService1 and expects output from AxisService1
AxisService1 calls AxisService2 and expects output from AxisService2
AxisService2 calls AxisService3 and expects output from AxisService3
AxisService3 calls AxisService1 (AxisService3 is contending for output for AxisService1 but so is AxisClient1)
therefore AxisService3 AND AxisClient1 are both vying for the same resource (AxisService1)

from a purely architectural perspective this is BAD DESIGN
If you want more than 1 data item then your AxisSoapService should return a complex datatype which wholly contains all of the data points you desire
 
Please read this discussion of atomicity by svend frolund
http://www.w3.org/2001/03/WSWS-popa/paper50

Martin --
This e-mail communication and any attachments may contain confidential and privileged information for the use of the 
designated recipients named above. If you are not the intended recipient, you are hereby notified that you have received
this communication in error and that any review, disclosure, dissemination, distribution or copying of it or its 
contents

----- Original Message ----- 
From: Kestonas  <ma...@yahoo.com> JoJo 
To: axis-user@ws.apache.org 
Sent: Tuesday, October 24, 2006 6:32 AM
Subject: AXIS 1.4: invoke request after web service sent response to client


Hi all,
I am curious is it possible to configure AXIS server to invoke another web service as client after response is send to client.

for example Transaction like:

1. Client No. 1 invokes method of Axis service No. 1
2. Axis service No 1 responses to Client No. 1
3. Axis service No 1 invokes  web service No. 2 as Client No. 2 
4. Axis service No 1 receives response from service No. 2.
5. Transaction is commited.

Thanks in advance,
Kestas




Re: AXIS 1.4: invoke request after web service sent response to client

Posted by Martin Gainty <mg...@hotmail.com>.
would be helpful if you looked at the definition of atomic transactions and the principle of atomicity
redesigning a web service that itself is a client to another web service may possibly invite a race condition
AxisClient1 calls AxisService1 and expects output from AxisService1
AxisService1 calls AxisService2 and expects output from AxisService2
AxisService2 calls AxisService3 and expects output from AxisService3
AxisService3 calls AxisService1 (AxisService3 is contending for output for AxisService1 but so is AxisClient1)
therefore AxisService3 AND AxisClient1 are both vying for the same resource (AxisService1)

from a purely architectural perspective this is BAD DESIGN
If you want more than 1 data item then your AxisSoapService should return a complex datatype which wholly contains all of the data points you desire

Please read this discussion of atomicity by svend frolund
http://www.w3.org/2001/03/WSWS-popa/paper50

Martin --
This e-mail communication and any attachments may contain confidential and privileged information for the use of the 
designated recipients named above. If you are not the intended recipient, you are hereby notified that you have received
this communication in error and that any review, disclosure, dissemination, distribution or copying of it or its 
contents
  ----- Original Message ----- 
  From: Kestonas JoJo 
  To: axis-user@ws.apache.org 
  Sent: Tuesday, October 24, 2006 6:32 AM
  Subject: AXIS 1.4: invoke request after web service sent response to client


  Hi all,
  I am curious is it possible to configure AXIS server to invoke another web service as client after response is send to client.

  for example Transaction like:

  1. Client No. 1 invokes method of Axis service No. 1
  2. Axis service No 1 responses to Client No. 1
  3. Axis service No 1 invokes  web service No. 2 as Client No. 2 
  4. Axis service No 1 receives response from service No. 2.
  5. Transaction is commited.

  Thanks in advance,
  Kestas