Ty for the Reply Sanjiva. I'll love to get the Old IO based driver working, as our main system (Datasul ERP) is all writtten in progress, so the use of the ESB pretty much depends on it.
It seems sometimes legacy application/platform vendors supplying their own web-service adapters is a worse shot than having to write things from scratch. Cheers, Alex On Dec 21, 2007 1:58 PM, Sanjiva Weerawarana <[EMAIL PROTECTED]> wrote: > Hi Alex, > > What the message shows is chunked encoding being used to transport the > message- which means instead of sending content length, you are sending > the message a small chunk at a time. The advantage is that the message can > then be streamed - if you require content length then it cannot. > > In this situation, I'll bet our transport is ignoring your request to set > the content length because "it knows better". > > However, it sounds like you're using a legacy HTTP environment which > doesn't do HTTP 1.1 correctly and doesn't handled chunked encoding > correctly. In which case, we'll need to write in some special flag which > tells the synapse http driver to ignore streaming, buffer the message, > count the size and set content length and then send it. > > Another thing that may work is using the non-NIO transport. Someone else > will have to give the details on how turn that on. > > Sanjiva. > > > Alex Reis wrote: > > Paul/All > > > > (Reposting this under the right thread) > > > > I've tried adding the property mediator as paul said, but the request > > sent to the proxyed endpoint still doesn't have Content-Length. Tcp > > monitor show the following request being sent: > > > > -- > > POST http://localhost:12345/wsa/wsa1 HTTP/1.1 > > Host: 192.168.5.30:12345 > > SOAPAction: "" > > Content-Type: text/xml; charset=UTF-8 > > Transfer-Encoding: chunked > > Connection: Keep-Alive > > User-Agent: Synapse-HttpComponents-NIO > > > > 14d > > <?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope > > xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" > > xmlns:urn="urn:dtsl.ems2.cadastros.services.itemdocument:ItemDocument"><soapenv:Body> > > <urn:getItems> > > <urn:idGrupoEstoque>81</urn:idGrupoEstoque> > > </urn:getItems> > > </soapenv:Body></soapenv:Envelope> > > 0 > > -- > > > > synapse XML config follows: > > > > <?xml version="1.0" encoding="UTF-8"?> > > > > <syn:definitions xmlns:syn="http://ws.apache.org/ns/synapse"> > > > > <syn:registry provider="org.wso2.esb.registry.ESBRegistry"> > > > > <syn:parameter name="root">file:registry/</syn:parameter> > > > > </syn:registry> > > > > <syn:proxy name="ItemNovo" transports="http" startOnLoad="true" > > statistics="enable" trace="enable"> > > > > <syn:target> > > > > <syn:endpoint> > > > > <syn:address uri="http://localhost:12345/wsa/wsa1"/> > > > > </syn:endpoint> > > > > <syn:inSequence> > > > > <syn:property name="Content-Length" value="328" > > scope="transport"/> > > > > <syn:log level="full" separator="--"/> > > > > </syn:inSequence> > > > > <syn:outSequence> > > > > <syn:send/> > > > > </syn:outSequence> > > > > </syn:target> > > > > <syn:publishWSDL > > uri="http://192.168.5.30:8080/wsa/wsa1/wsdl?targetURI=urn:dtsl.ems2.cadastros.services.itemdocument"/> > > > > </syn:proxy> > > > > <syn:sequence statistics="enable" name="main" trace="enable"> > > > > <syn:in> > > > > <syn:log level="full"/> > > > > <syn:filter source="get-property('To')" > > regex="http://localhost:9000.*"> > > > > <syn:send/> > > > > </syn:filter> > > > > </syn:in> > > > > <syn:out> > > > > <syn:send/> > > > > </syn:out> > > > > </syn:sequence> > > > > <syn:sequence statistics="enable" name="fault" trace="enable"> > > > > <syn:log/> > > > > </syn:sequence> > > > > </syn:definitions> > > > > On Dec 21, 2007 9:55 AM, Alex Reis <[EMAIL PROTECTED]> wrote: > >> Created JIRA ESBJAVA-415. > >> > >> Is it possible to get the whole message, envelope included with > >> something like MessageContext.getXMLPayload()? I could use a script > >> mediator to calculate it if something like that exists, but I'd think > >> that the SOAP envelopes are added only at the send mediator. I thought > >> of using the xpath function string-length over the serialized XML, but > >> I'm not quite sure how. > >> > >> > >> > >> > >> > >> On Dec 21, 2007 9:29 AM, Paul Fremantle <[EMAIL PROTECTED]> wrote: > >>> Alex > >>> > >>> Firstly, can you raise a JIRA about automatically adding Content-Length > >>> headers to the message? > >>> > >>> Secondly, you can add transport headers to the message. > >>> > >>> <property name="string" action='set' value="literal" | > >>> expression="xpath") scope=transport|axis2|axis2-client]/> > >>> > >>> However, I don't know how you are going to calculate it! > >>> > >>> Asankha - is there already a way to turn on adding content-length in the > >>> NIO HTTP client? > >>> > >>> Paul > >>> > >>> Alex Reis wrote: > >>>> Hello fellow ESBers, > >>>> > >>>> I'm not sure any of you are familiar with the Progress OpenEdge > >>>> WebServices Adapter. It's a proprietary Java EE web app to enable > >>>> execution of Progress OpenEdge procedures (4GL) using SOAP requests. > >>>> > >>>> Whenever I try to proxy it's services within the ESB and invoke it, I > >>>> get the response Error in SOAP Envelope: Content length must be > >>>> specified. (10913). > >>>> > >>>> If I invoke it directly through soapUI, it works AS LONG as I provide > >>>> the Content-Length header manually. > >>>> > >>>> So what I need to do is setup an input sequence that adds the > >>>> Content-Length headers with the payload + soap headers size. I tried > >>>> using the Header mediator but it only adds the SOAP headers, not HTTP. > >>>> > >>>> Is there any way to do this in Synapse/WSO2 ESB, maybe even using a > >>>> script mediator? > >>>> > >>>> Thank you, > >>>> > >>>> Alex > >>>> > >>>> > >>>> > >>> -- > >>> Paul Fremantle > >>> Co-Founder and VP of Technical Sales, WSO2 > >>> OASIS WS-RX TC Co-chair > >>> > >>> Office: +1 646 290 8050 > >>> Cell: +44 798 447 4618 > >>> > >>> blog: http://pzf.fremantle.org > >>> [EMAIL PROTECTED] > >>> > >>> "Oxygenating the Web Service Platform", www.wso2.com > >>> > >>> _______________________________________________ > >>> Esb-java-user mailing list > >>> [email protected] > >>> http://wso2.org/cgi-bin/mailman/listinfo/esb-java-user > >>> > >> > >> > >> > >> -- > >> Alexandre M. Reis > >> Enterprise Architect > >> Datasize Tecnologia da Informação Ltda. > >> Brasil & Movimento S.A. > >> www.sundownnet.com.br > >> +55-41-3276-6232 > >> +55-41-8801-9154 > >> +55-11-2103-4800 > >> > > > > > > > > -- > Sanjiva Weerawarana, Ph.D. > Founder, Chairman & CEO; WSO2, Inc.; http://www.wso2.com/ > email: [EMAIL PROTECTED]; cell: +1 650 265 8311 | +94 77 787 6880 > > "Oxygenating the Web Service Platform." > > > _______________________________________________ > Esb-java-user mailing list > [email protected] > http://wso2.org/cgi-bin/mailman/listinfo/esb-java-user > -- Alexandre M. Reis Enterprise Architect Datasize Tecnologia da Informação Ltda. Brasil & Movimento S.A. www.sundownnet.com.br +55-41-3276-6232 +55-41-8801-9154 +55-11-2103-4800 _______________________________________________ Esb-java-user mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/esb-java-user
