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/

Reply via email to