|
40 | 40 | import org.springframework.ws.server.endpoint.adapter.method.jaxb.XmlRootElementPayloadMethodProcessor;
|
41 | 41 | import org.springframework.ws.server.endpoint.mapping.PayloadRootAnnotationMethodEndpointMapping;
|
42 | 42 | import org.springframework.ws.soap.addressing.server.AnnotationActionEndpointMapping;
|
| 43 | +import org.springframework.ws.soap.server.endpoint.SimpleSoapExceptionResolver; |
| 44 | +import org.springframework.ws.soap.server.endpoint.SoapFaultAnnotationExceptionResolver; |
43 | 45 | import org.springframework.ws.soap.server.endpoint.adapter.method.SoapMethodArgumentResolver;
|
44 | 46 | import org.springframework.ws.soap.server.endpoint.mapping.SoapActionAnnotationMethodEndpointMapping;
|
45 | 47 |
|
@@ -78,6 +80,8 @@ public BeanDefinition parse(Element element, ParserContext parserContext) {
|
78 | 80 |
|
79 | 81 | registerEndpointAdapters(element, source, parserContext);
|
80 | 82 |
|
| 83 | + registerEndpointExceptionResolvers(source, parserContext); |
| 84 | + |
81 | 85 | parserContext.popAndRegisterContainingComponent();
|
82 | 86 |
|
83 | 87 | return null;
|
@@ -178,6 +182,18 @@ private void registerEndpointAdapters(Element element, Object source, ParserCont
|
178 | 182 | parserContext.getReaderContext().registerWithGeneratedName(adapterDef);
|
179 | 183 | }
|
180 | 184 |
|
| 185 | + private void registerEndpointExceptionResolvers(Object source, ParserContext parserContext) { |
| 186 | + RootBeanDefinition annotationResolverDef = |
| 187 | + createBeanDefinition(SoapFaultAnnotationExceptionResolver.class, source); |
| 188 | + annotationResolverDef.getPropertyValues().add("order", 0); |
| 189 | + parserContext.getReaderContext().registerWithGeneratedName(annotationResolverDef); |
| 190 | + |
| 191 | + RootBeanDefinition simpleResolverDef = |
| 192 | + createBeanDefinition(SimpleSoapExceptionResolver.class, source); |
| 193 | + simpleResolverDef.getPropertyValues().add("order", 1); |
| 194 | + parserContext.getReaderContext().registerWithGeneratedName(simpleResolverDef); |
| 195 | + } |
| 196 | + |
181 | 197 | private RuntimeBeanReference createBeanReference(Class<?> beanClass, Object source, ParserContext parserContext) {
|
182 | 198 | RootBeanDefinition beanDefinition = createBeanDefinition(beanClass, source);
|
183 | 199 | String beanName = parserContext.getReaderContext().registerWithGeneratedName(beanDefinition);
|
|
0 commit comments