Garth,

OK, I got the point. I think POX support in synapse-1.1.1 release was not
that solid. But now all it is fixed and if you could build synapse from the
trunk, you will be able to get this working without any issue. We are
planing to do a release in the middle of this month, so if you can wait for
this release, or build synapse from the svn trunk this is already fixed.
Unfortunately we do not have a nightly build setup yet. So if you have any
trouble in building synapse, I would like to make a build available to you
to test this?

What do you prefer?

PS: You don't have to use the format="POX" in the latest build, if the
request from the client is POX and also you want to send POX to the actual
service and all the response will be identified by synapse as POX messages
and forwarded back to the client as POX.

Thanks,
Ruwan

On Sat, May 3, 2008 at 7:24 AM, Garth Patil <[EMAIL PROTECTED]> wrote:

> Hi Ruwan,
> I'm using synapse-1.1.1. If I remove the format="pox" from my original
> configuration, or use your filter configuration (both attached), I get
> a new series of errors. Synapse now wraps the request to the remote
> server in a soap envelope, instead of leaving it unadulterated. The
> request gets turned from this:
>
> <?xml version="1.0" ?>
> <request>
>  <message>
>   <recipient>abc1234</recipient>
>   <text>Test message.</text>
>  </message>
> </request>
>
> into this:
>
> <?xml version='1.0' encoding='utf-8'?>
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/
> ">
>  <soapenv:Body>
>     <request>
>      <message>
>        <recipient>abc1234</recipient>
>        <text>Test message.</text>
>      </message>
>    </request>
>   </soapenv:Body>
> </soapenv:Envelope>
>
> Then, because the remote server cannot understand the xml, it produces
> a validation error that looks like this:
>
> <?xml version="1.0" ?>
> <response>
>   <status>4</status>
> </response>
>
> Synapse is unhappy with that response and throws the following
> exception in the debug logs, probably because it is expecting some
> kind of SOAP response:
>
> 2008-05-02 18:39:02,985 [172.22.1.144-garth.corp.4info.net]
> [HttpClientWorker-3] ERROR ClientWorker Unexpected response received
> org.apache.axiom.soap.SOAPProcessingException: First Element must
> contain the local name, Envelope , but found response
>        at
> org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.constructNode(StAXSOAPModelBuilder.java:219)
>        at
> org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.createOMElement(StAXSOAPModelBuilder.java:177)
>        at
> org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:163)
>        at
> org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.getSOAPEnvelope(StAXSOAPModelBuilder.java:161)
>        at
> org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.<init>(StAXSOAPModelBuilder.java:110)
>        at
> org.apache.axis2.builder.SOAPBuilder.processDocument(SOAPBuilder.java:53)
>        at
> org.apache.axis2.transport.TransportUtils.createDocumentElement(TransportUtils.java:160)
>        at
> org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:111)
>        at
> org.apache.synapse.transport.nhttp.ClientWorker.run(ClientWorker.java:160)
>        at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
>        at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
>        at java.lang.Thread.run(Thread.java:595)
>
> Synapse then responds to the client with a SOAP fault:
>
> <?xml version='1.0' encoding='utf-8'?>
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/
> ">
>  <soapenv:Body>
>    <soapenv:Fault>
>      <faultcode>200</faultcode>
>      <faultstring>OK</faultstring>
>      <detail>Unexpected response received : First Element must
> contain the local name, Envelope , but found response</detail>
>    </soapenv:Fault>
>  </soapenv:Body>
> </soapenv:Envelope>
>
> Thanks,
> Garth
>
> On Fri, May 2, 2008 at 6:27 PM, Ruwan Linton <[EMAIL PROTECTED]>
> wrote:
> > Hi Garth,
> >
> >  I just checked this with our sample client and it seems to work fine. I
> sent
> >  a XML payload to the proxy on Synapse and forwarded that message to the
> >  sample service (SimpleStockQuoteService) and send back the response.
> (You
> >  don't need to use the format="pox" in the endpoint because you are
> sending a
> >  POX payload) You may verify this by running the sample 50 [1] after
> changing
> >  the address endpoint to remove the format="soap11".
> >
> >
> >  <definitions xmlns="http://ws.apache.org/ns/synapse";>
> >     <!-- filtering of messages with XPath and regex matches -->
> >     <filter source="get-property('To')" regex=".*/StockQuote.*">
> >         <send>
> >             <endpoint>
> >                 <address
> >  uri="http://localhost:9000/soap/SimpleStockQuoteService"/>
> >             </endpoint>
> >         </send>
> >         <drop/>
> >     </filter>
> >     <send/>
> >  </definitions>
> >
> >
> >  BTW: what is the version of synapse that you are using?
> >
> >  [1] - http://synapse.apache.org/Synapse_Samples.html#Sample50
> >
> >  Thanks,
> >  Ruwan
> >
> >
> >
> >  On Fri, May 2, 2008 at 11:23 PM, Garth Patil <[EMAIL PROTECTED]>
> wrote:
> >
> >  > log4j.category.org.apache.synapse=DEBUG
> >  > log attached.
> >  > Thanks,
> >  > Garth
> >  >
> >  > On Fri, May 2, 2008 at 10:37 AM, Ruwan Linton <[EMAIL PROTECTED]
> >
> >  > wrote:
> >  > > Hi Garth,
> >  > >
> >  > >  Thanks for the information, could you please send us the synapse
> DEBUG
> >  > log
> >  > >  as well. You can change the log level by editing the
> >  > lib/log4j.properties
> >  > >  file to enable DEBUG logs.
> >  > >
> >  > >  Thanks,
> >  > >  Ruwan
> >  > >
> >  > >
> >  > >
> >  > >  On Fri, May 2, 2008 at 10:56 PM, Garth Patil <[EMAIL PROTECTED]
> >
> >  > wrote:
> >  > >
> >  > >  > The request and response from the actual service is not SOAP. It
> is
> >  > >  > just XML. While I understand that synapse is very SOAP-centric,
> in
> >  > >  > this case, I want to use synapse to proxy the request for
> logging.
> >  > >  > The request to synapse looks like this:
> >  > >  >
> >  > >  > <?xml version="1.0" ?>
> >  > >  > <request>
> >  > >  >  <message>
> >  > >  >    <recipient>abc1234</recipient>
> >  > >  >    <text>Test message.</text>
> >  > >  >  </message>
> >  > >  > </request>
> >  > >  >
> >  > >  > Synapse passes the request on to the actual service without
> changing
> >  > >  > the XML. The request to the actual service looks exactly the
> same
> >  > >  > The response from the actual service looks like this:
> >  > >  >
> >  > >  > <?xml version="1.0" ?>
> >  > >  > <response>
> >  > >  >  <requestId>F81D4FAE-7DEC-11D0-A765-00A0C91E6BF6</requestId>
> >  > >  >  <status>1status>
> >  > >  > </response>
> >  > >  >
> >  > >  > But the response returned by synapse adds the soapenv:Body and
> >  > >  > soapenv:Envelope tags to the response:
> >  > >  >
> >  > >  > <?xml version="1.0" ?>
> >  > >  > <soapenv:Envelope>
> >  > >  >  <soapenv:Body>
> >  > >  >    <response>
> >  > >  >      <requestId>F81D4FAE-7DEC-11D0-A765-00A0C91E6BF6</requestId>
> >  > >  >      <status>1status>
> >  > >  >    </response>
> >  > >  >  </soapenv:Body>
> >  > >  > </soapenv:Envelope>
> >  > >  >
> >  > >  > Thanks to everyone for the help.
> >  > >  > Best,
> >  > >  > Garth
> >  > >  >
> >  > >  > On Thu, May 1, 2008 at 10:11 PM, Asankha C. Perera <
> [EMAIL PROTECTED]>
> >  > >  > wrote:
> >  > >  > > Garth
> >  > >  > >
> >  > >  > >  Could you post a sample request sent to Synapse? I think the
> >  > problem
> >  > >  > here
> >  > >  > > is that Synapse "detects" your original request as SOAP.
> Probably
> >  > this
> >  > >  > is
> >  > >  > > due to the content type of the message. Is there a possibility
> for
> >  > you
> >  > >  > to
> >  > >  > > use the TCPMon to capture an input message and post it here?
> >  > >  > >
> >  > >  > >  asankha
> >  > >  > >
> >  > >  > >
> >  > >  > >
> >  > >  > >
> >  > >  > >  Ruwan Linton wrote:
> >  > >  > >
> >  > >  > > > Hi Garth,
> >  > >  > > >
> >  > >  > > > Is it the actual web service which returns SOAP as the
> response
> >  > for
> >  > >  > POX
> >  > >  > > > (XML/HTTP) request, or Synapse. If it is the former you need
> to
> >  > ask
> >  > >  > this
> >  > >  > > > question from the web service container guys...
> >  > >  > > >
> >  > >  > > > If the request you send to synapse is POX then synapse will
> >  > respond to
> >  > >  > you
> >  > >  > > > as POX regardless of whether it receives a SOAP or POX..
> >  > >  > > >
> >  > >  > > > Could you please clarify the problem a little bit more?
> >  > >  > > >
> >  > >  > > > Thanks,
> >  > >  > > > Ruwan
> >  > >  > > >
> >  > >  > > > On Fri, May 2, 2008 at 3:04 AM, Garth Patil <
> [EMAIL PROTECTED]
> >  > >
> >  > >  > wrote:
> >  > >  > > >
> >  > >  > > >
> >  > >  > > >
> >  > >  > > > > Hi All,
> >  > >  > > > > I'm using synapse to proxy a web service that uses XML
> over
> >  > HTTP. My
> >  > >  > > > > configuration looks like this:
> >  > >  > > > > <definitions xmlns= "http://ws.apache.org/ns/synapse";>
> >  > >  > > > >  <proxy name="TestProxy">
> >  > >  > > > >   <target>
> >  > >  > > > >     <endpoint>
> >  > >  > > > >       <address uri="http://someremoteservice.com/msg";
> >  > format="pox"
> >  > >  > />
> >  > >  > > > >     </endpoint>
> >  > >  > > > >     <inSequence>
> >  > >  > > > >       <log level= "full" />
> >  > >  > > > >     </inSequence>
> >  > >  > > > >     <outSequence>
> >  > >  > > > >       <log level= "full" />
> >  > >  > > > >       <send />
> >  > >  > > > >     </outSequence>
> >  > >  > > > >   </target>
> >  > >  > > > >  </proxy>
> >  > >  > > > > </definitions>
> >  > >  > > > >
> >  > >  > > > > I post XML to localhost:8080/soap/TestProxy, and synapse
> passes
> >  > it
> >  > >  > to
> >  > >  > > > > the specified endpoint without changing it. The remote
> service
> >  > >  > returns
> >  > >  > > > > XML which is wrapped in soapenv:Body and soapenv:Envelope
> tags.
> >  > Is
> >  > >  > > > > there a way to specify that the response (like the
> request)
> >  > remain
> >  > >  > > > > unadulterated by SOAP tags?
> >  > >  > > > > Thanks,
> >  > >  > > > > Garth
> >  > >  > > > >
> >  > >  > > > >
> >  > >  > > > >
> >  > >  > > >
> >  > >  > > >
> >  > >  > > >
> >  > >  > > >
> >  > >  > > >
> >  > >  > >
> >  > >  >
> >  > >
> >  > >
> >  > >
> >  > >
> >  > >
> >  > > --
> >  > >  Ruwan Linton
> >  > >  http://www.wso2.org - "Oxygenating the Web Services Platform"
> >  > >
> >  >
> >
> >
> >
> >  --
> >
> >
> > Ruwan Linton
> >  http://www.wso2.org - "Oxygenating the Web Services Platform"
> >
>



-- 
Ruwan Linton
http://www.wso2.org - "Oxygenating the Web Services Platform"

Reply via email to