Petals BC SOAP

BC-SOAP does not forward the error message

Details

  • Type: Bug Bug
  • Status: New New
  • Priority: Blocker Blocker
  • Resolution: Unresolved
  • Affects Version/s: 4.0, 4.1
  • Fix Version/s: None
  • Component/s: None
  • Security Level: Public
  • Description:
    Hide

    Issue associated to the forum thread: BC-SOAP does not forward the error message

    I have an external webservice with methods defined as InOnly. If I invoke a method with correct arguments in the SOAP Enveloppe, it returns only (which is correct) : {{HTTP/1.1 202 Accepted Server: Apache-Coyote/1.1 Content-Length: 0 Date: Mon, 06 Aug 2012 08:09:29 GMT Connection: close }}

    It works also fine thru bc-soap provider and consumer on Petal 4.
    {{HTTP/1.1 202 Accepted Content-Type: text/xml; charset=utf-8 Connection: close Server: Jetty(6.1.9) }}

    BUT, if the SOAP enveloppe is missing something, Petals also returns an "{{http 202 : accepted" HTTP/1.1 202 Accepted Content-Type: text/xml; charset=utf-8 Connection: close Server: Jetty(6.1.9) }}

    whereas the real webservice gave the following ( correct ) error
    {{soapenv:Sender Validation error cvc-complex-type.2.4.a: Invalid content was found starting with element 'ns:contextId'. One of '{"http://server.domain/endpoint/1.1":procedure}' is expected.}}

    According to http://www.w3.org/2002/ws/addr/testsuite/exchanges/#SOAP12-HTTP-In-Only-Fault, it should return the http-status AND the fault

    I cannot change the wsdl to mark the method InOut as the webservice I invoke is defined by our customer without return message.

    It would be really nice to have the choice of validating (or not) the SOAP data with the WSDL at the consumer side of Petals.

    But in JBI, InOnly only returns an ACK to acknowledge that the message was received. The translation between web services and JBI (Petals) is handled by the SOAP component. And obviously, this part is not correctly handled right now for your use case (I am surprised too).

    Vincent Zurczak asked me to report this bug on JIRA

    Show
    Issue associated to the forum thread: BC-SOAP does not forward the error message I have an external webservice with methods defined as InOnly. If I invoke a method with correct arguments in the SOAP Enveloppe, it returns only (which is correct) : {{HTTP/1.1 202 Accepted Server: Apache-Coyote/1.1 Content-Length: 0 Date: Mon, 06 Aug 2012 08:09:29 GMT Connection: close }} It works also fine thru bc-soap provider and consumer on Petal 4. {{HTTP/1.1 202 Accepted Content-Type: text/xml; charset=utf-8 Connection: close Server: Jetty(6.1.9) }} BUT, if the SOAP enveloppe is missing something, Petals also returns an "{{http 202 : accepted" HTTP/1.1 202 Accepted Content-Type: text/xml; charset=utf-8 Connection: close Server: Jetty(6.1.9) }} whereas the real webservice gave the following ( correct ) error {{soapenv:Sender Validation error cvc-complex-type.2.4.a: Invalid content was found starting with element 'ns:contextId'. One of '{"http://server.domain/endpoint/1.1":procedure}' is expected.}} According to http://www.w3.org/2002/ws/addr/testsuite/exchanges/#SOAP12-HTTP-In-Only-Fault, it should return the http-status AND the fault I cannot change the wsdl to mark the method InOut as the webservice I invoke is defined by our customer without return message. It would be really nice to have the choice of validating (or not) the SOAP data with the WSDL at the consumer side of Petals. But in JBI, InOnly only returns an ACK to acknowledge that the message was received. The translation between web services and JBI (Petals) is handled by the SOAP component. And obviously, this part is not correctly handled right now for your use case (I am surprised too). Vincent Zurczak asked me to report this bug on JIRA
  • Environment:
    Win2008r2 64

Activity

Christophe DENEUX made changes - Tue, 21 Aug 2012 - 10:36:08 +0200
Field Original Value New Value
Assignee Nicolas Oddoux [ noddoux ] Christophe DENEUX [ cdeneux ]
Christophe DENEUX made changes - Tue, 21 Aug 2012 - 10:38:10 +0200
Priority Blocker [ 1 ]
Description I have an external webservice with methods defined as InOnly. If I invoke a method with correct arguments in the SOAP Enveloppe, it returns only (which is correct) : {{HTTP/1.1 202 Accepted Server: Apache-Coyote/1.1 Content-Length: 0 Date: Mon, 06 Aug 2012 08:09:29 GMT Connection: close }}

It works also fine thru bc-soap provider and consumer on Petal 4.
 {{HTTP/1.1 202 Accepted Content-Type: text/xml; charset=utf-8 Connection: close Server: Jetty(6.1.9) }}
 
 BUT, if the SOAP enveloppe is missing something, Petals also returns an "{{http 202 : accepted" HTTP/1.1 202 Accepted Content-Type: text/xml; charset=utf-8 Connection: close Server: Jetty(6.1.9) }}
 
 whereas the real webservice gave the following ( correct ) error
 {{soapenv:Sender Validation error cvc-complex-type.2.4.a: Invalid content was found starting with element 'ns:contextId'. One of '{"http://server.domain/endpoint/1.1":procedure}' is expected.}}
 
 
According to http://www.w3.org/2002/ws/addr/testsuite/exchanges/#SOAP12-HTTP-In-Only-Fault, it should return the http-status AND the fault

I cannot change the wsdl to mark the method InOut as the webservice I invoke is defined by our customer without return message.

It would be really nice to have the choice of validating (or not) the SOAP data with the WSDL at the consumer side of Petals.
 


But in JBI, InOnly only returns an ACK to acknowledge that the message was received. The translation between web services and JBI (Petals) is handled by the SOAP component. And obviously, this part is not correctly handled right now for your use case (I am surprised too).

Vincent Zurczak asked me to report this bug on JIRA
Issue associated to the forum thread: [BC-SOAP does not forward the error message|http://forum.petalslink.com/BC-SOAP-does-not-forward-the-error-message-td4025239.html]

I have an external webservice with methods defined as InOnly. If I invoke a method with correct arguments in the SOAP Enveloppe, it returns only (which is correct) : {{HTTP/1.1 202 Accepted Server: Apache-Coyote/1.1 Content-Length: 0 Date: Mon, 06 Aug 2012 08:09:29 GMT Connection: close }}

It works also fine thru bc-soap provider and consumer on Petal 4.
 {{HTTP/1.1 202 Accepted Content-Type: text/xml; charset=utf-8 Connection: close Server: Jetty(6.1.9) }}
 
 BUT, if the SOAP enveloppe is missing something, Petals also returns an "{{http 202 : accepted" HTTP/1.1 202 Accepted Content-Type: text/xml; charset=utf-8 Connection: close Server: Jetty(6.1.9) }}
 
 whereas the real webservice gave the following ( correct ) error
 {{soapenv:Sender Validation error cvc-complex-type.2.4.a: Invalid content was found starting with element 'ns:contextId'. One of '{"http://server.domain/endpoint/1.1":procedure}' is expected.}}
 
 
According to http://www.w3.org/2002/ws/addr/testsuite/exchanges/#SOAP12-HTTP-In-Only-Fault, it should return the http-status AND the fault

I cannot change the wsdl to mark the method InOut as the webservice I invoke is defined by our customer without return message.

It would be really nice to have the choice of validating (or not) the SOAP data with the WSDL at the consumer side of Petals.
 


But in JBI, InOnly only returns an ACK to acknowledge that the message was received. The translation between web services and JBI (Petals) is handled by the SOAP component. And obviously, this part is not correctly handled right now for your use case (I am surprised too).

Vincent Zurczak asked me to report this bug on JIRA

People

Dates

  • Created:
    Thu, 16 Aug 2012 - 09:43:47 +0200
    Updated:
    Tue, 21 Aug 2012 - 10:38:10 +0200