Okay here is what I have :
Generated Stub -> HTTP Consumer-> HTTP Provider -> JBoss Web Service. So when the generated stubs received the HTTP based error message from the servicemix HTTPConsumer they cannot parse the message and thus do not handlt eh buisness like they are supposed to be handle. The HTTP Consumer produces this error because it receives a fault message from the HTTP provider endpoint. I do not think that the Consumer should be modified for this. I think the consumer is doing the right think in raising an HTTP 500 error, However, I think that the Provider should have an attribut that says do not process error messages (ignoreErrors ?). This way the message will be transfered as is to the consumer who will return this to the client (a stub in my case). The stub can hand the soap message without any problem. Ps: I've noticed that if I remove the "exchange.setStatus(ExchangeStatus.ERROR);" I get the following message from teh server (which still cannot be handle by my stub). WHat I really want is the soapenv section. ---- <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"> <env:Body> <env:Fault> <env:Code> <env:Value>env:Receiver</env:Value> </env:Code> <env:Details> <soapenv:Fault xmlns:ns1="http://ws.location.services.com/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <faultcode>soapenv:Server</faultcode> <faultstring>java.lang.IllegalArgumentException</faultstring> </soapenv:Fault> </env:Details> </env:Fault> </env:Body> </env:Envelope> --- Guillaume Nodet <[EMAIL PROTECTED]> wrote: > The error you see is created by a consumer endpoint > (not a provider > endpoint) when an error is returned by the target > endpoint. > Is this a business exception ? in this case, the > target endpoint > should return a fault, not an error. > Could you please explain the whole flow you use ? > I'd like to improve that, but i need a reproducible > test / xml configuration ... > > Cheers, > Guillaume Nodet > > On 5/4/06, Eric Dofonsou <[EMAIL PROTECTED]> > wrote: > > Hello, > > > > I am having another issue with the way servicemix > > handles all the soap fault message return by my > web > > services, > > > > With the current version of servicemix, my soap > > message is replace by the following HTTP error > message > > : > > ------ > > <html> > > <head> > > <title>Error 500 Unknown Error</title> > > </head> > > <body> > > <h2>HTTP ERROR: 500</h2> > > <pre>Unknown Error</pre> > > <p>RequestURI=/Service/</p> > > <p> > > <i> > > <small> > > <a > > href="http://jetty.mortbay.org">Powered by > > Jetty://</a> > > </small> > > </i> > > </p> > > </body> > > </html> > > ---- > > > > because of this message, my generated stubs cannot > > properly handle the soap message. > > > > I was wondering if it's not possible to have an > > attribut that specifies on a provider endpoint > that we > > do not want servicemix to error message from the > web > > service and just return them as is to the client. > > > > PS : when I put the block of code that handls the > > error message in comment it works fine : > > Here is the black of code from ProviderProcessor > that > > is commented out : > > ------------ > > if (response != HttpStatus.SC_OK) { > > if (exchange instanceof InOnly == > > false) { > > Fault fault = > > exchange.createFault(); > > SoapReader reader = > > soapMarshaler.createReader(); > > Header contentType = > > method.getResponseHeader("Content-Type"); > > soapMessage = > > reader.read(method.getResponseBodyAsStream(), > > > > contentType != null ? contentType.getValue() : > null); > > > > fault.setProperty(JbiConstants.PROTOCOL_HEADERS, > > getHeaders(method)); > > jbiMarshaler.toNMS(fault, > > soapMessage); > > exchange.setFault(fault); > > > > exchange.setStatus(ExchangeStatus.ERROR); > > channel.send(exchange); > > return; > > } else { > > throw new Exception("Invalid > > status response: " + response); > > } > > } > > ------------ > > > > __________________________________________________ > > Do You Yahoo!? > > Tired of spam? Yahoo! Mail has the best spam > protection around > > http://mail.yahoo.com > > > __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com
