Nice catch ! Thanks a lot. On Tue, Feb 26, 2008 at 1:43 PM, Gianfranco Boccalon <[EMAIL PROTECTED]> wrote: > Now it works. > There were 2 problems: one mine and the other of SMX. > > 1. My problem: I applied to the class CxfBcProviderMessageObserver the > same patch about WSDL with only one operation, to avoid specifying the > operation if it's not necessary. > The patch that I replicated is: > > https://issues.apache.org/activemq/browse/SM-1225?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel > The problem was that I replicated the patch in the wrong way. > > 2. SMX problem: the problem was in the class > CxfBcProviderMessageObserver. This class doesn't manage Soap 1.2 > responses because it uses only the JbiInWsdl1Interceptor, but it's the > ReadHeadersInterceptor that changes the SoapMessage version attribute > according to the content of the soap response. > In the current code the SoapMessage is created, and the default > constructor set Soap 1.1 version. > This causes that the getBodyElement method of the class > JbiInWsdl1Interceptor, doesn't work because it tries to retrieve the > wrong body from the message. > I changed the CxfBcProviderMessageObserver adding some of the > interceptors used in the CxfBcConsumer and changing the creation of the > XML stream used to read the content of the response, and now it works > correctly. > I'll raise a JIRA and attach the changed code. > > Regards > Gianfranco Boccalon > > > Guillaume Nodet ha scritto: > > > > Everything happen in JbiInWsdl1Interceptor, in the servicemix-cxf-bc module. > > I would recommend setting a breakpoint there and debug. > > > > On Mon, Feb 25, 2008 at 1:51 PM, Gianfranco Boccalon > > <[EMAIL PROTECTED]> wrote: > > > >> It should be compliant to the WSDL. > >> Where on the code this check is performed ? > >> > >> Guillaume Nodet ha scritto: > >> > >> > >> > >>> Is the response compliant with the WSDL description of you service ? > >>> > >> > I think it might be of importance the component when building the > response > >> > with the JBI wrapper. > >> > > >> > On Mon, Feb 25, 2008 at 1:39 PM, Gianfranco Boccalon > >> > <[EMAIL PROTECTED]> wrote: > >> > > >> >> This is the response message produced by the CXF BC provider: > >> >> > >> >> INFO - SimpleExchangeListener - InOnly[ > >> >> id: ID:192.168.20.106-11850545062-2:1 > >> >> status: Done > >> >> role: provider > >> >> service: {urn:eng:spagic:processes:mtom3:v0}mtom3.End4_v_0 > >> >> endpoint: mtom3.End4_v_0 > >> >> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message > >> >> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" > >> >> xmlns:msg="urn:eng:spagic:processes:mtom3:v0" > >> >> name="ProvideAndRegisterDocumentSet-bResponse_Message" > >> >> type="msg:ProvideAndRegisterDocumentSet-bResponse_Message" > >> >> version="1.0"><jbi:part><wsa:Action > >> >> > xmlns:wsa="http://www.w3.org/2005/08/addressing">urn:ihe:iti:2007:ProvideAndRegisterDocumentSet-bResponse</wsa:Action></jbi:part></jbi:message> > >> >> ] > >> >> > >> >> and this is the response provided by the external web service (traced > >> >> with a TCP monitor): > >> >> > >> >> HTTP/1.1 200 OK > >> >> Server: Apache-Coyote/1.1 > >> >> Content-Type: application/soap+xml; > >> >> > action="urn:ihe:iti:2007:ProvideAndRegisterDocumentSet-bResponse";charset=UTF-8 > >> >> Transfer-Encoding: chunked > >> >> Date: Mon, 25 Feb 2008 12:23:34 GMT > >> >> > >> >> 21b > >> >> <?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope > >> >> xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope" > >> >> > xmlns:wsa="http://www.w3.org/2005/08/addressing"><soapenv:Header><wsa:Action>urn:ihe:iti:2007:ProvideAndRegisterDocumentSet-bResponse</wsa:Action><wsa:RelatesTo>urn:uuid:138991F87C7A640C321203942221068</wsa:RelatesTo></soapenv:Header><soapenv:Body><rs:RegistryResponse > >> >> xmlns:rs="urn:oasis:names:tc:ebxml-regrep:xsd:rs:3.0" > >> >> status="urn:oasis:names:tc:ebxml-regrep:ResponseStatusType:Success" > >> >> /></soapenv:Body></soapenv:Envelope> > >> >> 0 > >> >> > >> >> > >> >> > >> >> > >> >> Freeman Fang ha scritto: > >> >> > >> >> > >> >> > >> >>> In the code of the CXF BC provider, we register the MessageObserver > which > >> >>> > >> >> > handle the response > >> >> > > >> >> > CxfBcProviderMessageObserver obs = new > >> >> > CxfBcProviderMessageObserver(exchange, this); > >> >> > conduit.setMessageObserver(obs); > >> >> > > >> >> > And [1] for more details about the CxfBcProviderMessageObserver. > >> >> > > >> >> > You mentioned you see the response jbi message produced by the cxf > bc > >> >> > provider, but it doesn't contain the external webservice response, > would you > >> >> > please > >> >> > append the jbi message you see, and if possible, append the soap > message > >> >> > from external webservice as well. > >> >> > > >> >> > > [1]http://svn.apache.org/repos/asf/servicemix/smx3/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/main/java/org/apache/servicemix/cxfbc/CxfBcProviderMessageObserver.java > >> >> > > >> >> > Freeman > >> >> > On Mon, Feb 25, 2008 at 7:09 PM, Gianfranco Boccalon <[EMAIL > PROTECTED]> > >> >> > wrote: > >> >> > > >> >> > > >> >> >> I dont have any exception: I'm saying that the response message > produced > >> >> >> by the CXF BC provider doesn't contain the response of the > external web > >> >> >> service. > >> >> >> In the code of the CXF BC provider I dont see any line of code > managing > >> >> >> the response of the Web service called, I see only the code about > >> >> >> sending the output stream of the HTTP request. > >> >> >> > >> >> >> I saw that in the HTTPConduit there is the method getBackChannel > for > >> >> >> managing the response, but I dont found where it is used (may be > it's > >> >> >> not used ?). > >> >> >> > >> >> >> Guillaume Nodet ha scritto: > >> >> >> > >> >> >>> I don't see why it would fail. > >> >> >>> Do you have any exceptions in the log ? Have you tried at DEBUG > level > >> >> >>> (it sometimes change the behavior due to the logging of > messages). > >> >> >>> > >> >> >>> On Mon, Feb 25, 2008 at 11:44 AM, Gianfranco Boccalon > >> >> >>> <[EMAIL PROTECTED]> wrote: > >> >> >>> > >> >> >>> > >> >> >>>> Hi all, > >> >> >>>> I'm using the CXF BC provider in a pipeline: the problem is > that the > >> >> >>>> response that I receive from the external web service is not > included > >> >> >>>> > >> >> >> on > >> >> >> > >> >> >>>> the response message of the CXF BC provider. > >> >> >>>> > >> >> >>>> My SA is : > >> >> >>>> > >> >> >>>> File Component -> EIP pipeline containing a CXF BC provider > calling an > >> >> >>>> external Web service -> Console output BC > >> >> >>>> > >> >> >>>> The External web service is called without problems but I'm > not able > >> >> >>>> > >> >> >> to > >> >> >> > >> >> >>>> see its response on the console: I see the jbi:message > produced by the > >> >> >>>> CXF BC, but it doesn't contain the external web service > response. > >> >> >>>> > >> >> >>>> Any suggestion ? > >> >> >>>> > >> >> >>>> > >> >> >>>> > >> >> >>> > >> >> >>> > >> >> >>> > >> >> >> > >> >> > > >> >> > > >> >> > >> >> > >> >> > >> > > >> > > >> > > >> > > >> > >> > >> > > > > > > > > > >
-- Cheers, Guillaume Nodet ------------------------ Blog: http://gnodet.blogspot.com/
