SoapFaultMappingExceptionResolver never gets hit with regular java exception

exception, java, soap, spring, spring-ws

Solution

I got it working by adding

<property name="order" value="1"></property>

to the

<bean id="exceptionResolver" class="com.openclass.adapter.ws.resolvers.LisSoapFaultTranslatorExceptionResolver">

Problem

Can anyone tell me why I cant catch a regular Java exception with my resolver so I can transform it before the response is sent back? It never gets hit with a breakpoint. If its not possible, how can I? SoapFaultMappingExceptionResolver ``` public class LisSoapFaultTranslatorExceptionResolver extends SoapFaultMappingExceptionResolver { @Override protected void customizeFault(Object endpoint, Exception ex, SoapFault fault) { SoapFaultDetail detail = fault.addFaultDetail(); } } ``` Bean ``` <sws:annotation-driven /> <bean class="org.springframework.ws.server.endpoint.mapping.PayloadRootAnnotationMethodEndpointMapping" /> <bean id="exceptionResolver" class="com.openclass.adapter.ws.resolvers.LisSoapFaultTranslatorExceptionResolver"> <property name="defaultFault" value="RECEIVER,Server error"> </property> <property name="exceptionMappings"> <value>java.lang.Exception=SERVER,FaultMsg</value> </property> </bean> ``` Soap Response With Error ``` <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Header/> <SOAP-ENV:Body> <SOAP-ENV:Fault> <faultcode>SOAP-ENV:Server</faultcode> <faultstring xml:lang="en">java.lang.NullPointerException</faultstring> </SOAP-ENV:Fault> </SOAP-ENV:Body> </SOAP-ENV:Envelope> ``` Web Service ``` @PayloadRoot(localPart="readCourseSectionRequest", namespace="http://www.imsglobal.org/services/lis/cmsv1p0/wsdl11/sync/imscms_v1p0") @ResponsePayload public ReadCourseSectionResponse readCourseSection(@RequestPayload ReadCourseSectionRequest request, MessageContext messageContext) { // Throws error since courseService is null ReadCourseSectionResponse openClassResponse = courseService.readCourseSection(request); return new ReadCourseSectionResponse(); } ```

Original source

Related problems