Hi guys,
I have a process that invokes an external service through the "Service Endpoint" step. The property Throw Exception on Fault is set to yes.
The service is answering with the following Soap Fault
HTTP/1.1 500 Internal Server Error
Server: Apache-Coyote/1.1
Content-Type: text/xml;charset=utf-8
Content-Length: 711
Date: Mon, 28 Nov 2016 12:03:57 GMT
Connection: close
<?xml version='1.0' encoding='UTF-8'?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Server</faultcode>
<faultstring>An error was detected while executing the Web Service request. (10893)</faultstring>
<detail>
<ns1:FaultDetail xmlns:ns1="urn:soap-fault:details"><errorMessage>Web Service application not found: uri:kamstrup.com/schemas/Contract (10858)</errorMessage><requestID>bf52b677bfc471d0:-4f08337:158a4443c5f:-7fff#34de</requestID></ns1:FaultDetail>
</detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
the message is audit in the MessageHistory table with FaultType = Server, but not exception is thrown and no message is logged in the Failed Message table.
I do not recall this behavior, all the services developed until now rely on the previous property for catching the error, as I would expect an exception to be thrown.
Am I missing anything?
Thank you very much
Fabrizio
Tags:
Hi Fabrizio,
This should throw an exception within the Business Process. if you have this within an Exception process step, you should be able to catch the exception in the Catch block...
Hi Marty,
I remembered the same behavior but NO exception are thrown, the process continues the execution and the message is logged in the message history table.
interesting....I'll have Scott test the behavior today. I don't think we've changed anything....so I wonder if WCF is reporting it as something different to us...maybe its the status code. In any case, we'll check this today.
ok. Thank you.
If you need any additional info, just let me know.
I am running build 840
F.
Fabrizio,
We fixed this bug. I just emailed you a link to a 3.5.4 build that contains the fix.
Joe
Hi guys,
I have tested this with the last build, it works for Soap services, if a soapFault is thrown, the process stops and current messages is audited as failed.
The same behavior does not apply to REST endpoint, even if a 500 - Internal server error is detected, the process continues.
In both cases "Thrown Exception on Fault" is set to true.
Should I check something different? Would you mind checking this case as well?
Thank you very much
Fabrizio
I tried to create a server policy including the Http 500 as an Exception and this makes it... is this the right way?
Can you email me a screen shot of how you have the REST tab configured in the service endpoint?
Joe
Hi Joe, here the service endpoint configuration.
I have done some more testing, a response 400 is catched as an error, while a 500, it is not. The message is flagged with FaultType = Communication but it does not throw an exception
My apologies - I meant I wanted a pic of the REST tab in the Service Policy.
Now the default policy looks like that and it catches all the given error codes resulting in the error "violates the policy...".
Before of this change the list was empty, I hadn't modified the default policy and still it is able to catch a 400 reply as an error but not a 500.
F.
You've confused me. It's Monday so it's not terribly difficult...
So originally, you had the default values in the Default Service Policy, correct? And you're reporting that with the default values, a 400 results as an exception and a 500 does not. Is this correct?
But now you changed the Default Service Policy to the values in the image you sent. And the way you have the policy set-up, everything in the list on the right should result in an exception. Is this the behavior you want?
Neuron ESB Product Support Forums and Communities
© 2024 Created by Neuron Admin. Powered by