After following this link
https://camel.apache.org/cxf.html#CXF-HowtothrowaSOAPFaultfromCamel
now I'm able to create a custom Fault, but I'm not able to obtain the
original fault message "Missing valid token" from the proxified service.
Instead of that I got a strange message:
"javax.xml.transform.dom.DOMSource@136bd". How can I obtain the original
fault message in order to simulate a transparent propagation of the
soapfault?
This is the code I have now:
onException(Exception.class)
.process(
new Processor() {
public void process(Exchange exchange) throws
Exception {
SoapFault fault =
exchange.getProperty(Exchange.EXCEPTION_CAUGHT,
SoapFault.class);
System.out.println("Fault: " + fault); // -->
This returns NULL
Exception excep =
exchange.getProperty(Exchange.EXCEPTION_CAUGHT,
Exception.class);
System.out.println("excep: " + excep);
System.out.println("excep message: " +
excep.getMessage());
System.out.println("excep cause: " +
excep.getCause());
SoapFault SOAP_FAULT = new
SoapFault(excep.getMessage(),
SoapFault.FAULT_CODE_CLIENT);
Element detail =
SOAP_FAULT.getOrCreateDetail();
Document doc =
detail.getOwnerDocument();
Text tn = doc.createTextNode("this is a
test");
detail.appendChild(tn);
exchange.getOut().setFault(true);
exchange.getOut().setBody(SOAP_FAULT);
exchange.setProperty(Exchange.ERRORHANDLER_HANDLED, false);
exchange.removeProperty("CamelExceptionCaught");
}
})
.handled(true)
.end();
from("switchyard://ProxyService")
.process(myProc) // -->just some logging and addition of headers
.handleFault()
.to("switchyard://ProxifiedService").end();
--
View this message in context:
http://camel.465427.n5.nabble.com/Propagate-SoapFault-with-simple-Camel-proxy-tp5756164p5756276.html
Sent from the Camel - Users mailing list archive at Nabble.com.