You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
My Endpoint class uses @Action for mapping requests:
@Endpoint("MedicineCardIdwsEndpoint")
public class MedicineCardIdws {
@Action("http://someuriandversion#GetMedicineCardIdws")
@ResponsePayload
public Element getMedicineCard(@RequestPayload Element payload, SoapMessage soapMessage) {
return null;
}
I know this is not a valid implementation, I just want to illustrate that the global interceptor described in the XML config is not getting executed.
To figure out why I inserted a breakpoint inside org.springframework.ws.soap.server.SoapMessageDispatcher#headerUnderstood and when that breakpoint is triggered I can see that the only interceptor that is registered for my Endpoint is the org.springframework.ws.soap.addressing.server.AddressingEndpointInterceptor which got added because of the Action annotation in my endpoint.
I thought that any global interceptors in the XML configuration would end up being added to the interceptor chain for all endpoints regardles of how the endpoints were mapped?
However it seems this is not the case. At first Ifigured I must be doing something wrong, but I cannot find any description of how to add custom interceptors when using @Action. (This is my first time using @Action and Spring-ws, so I may be mistaken)
If I switch from using @Action to using @SoapAction mappings instead my "XML" interceptors are added just fine.
When using SoapActions I also have the option of registering interceptors for my mapping using the SoapActionAnnotationMethodEndpointMapping, but I could not find a similar endpointmapping class allowing me to register custom interceptors for WS addressing:
If it is possible to add the interceptors when using WS-Addressing with Spring-ws in a simpler way it would be nice to get this documented. Otherwise I guess it must be a bug that the interceptors are not added to the endpoint?
I forgot to mention that my requests use a soap header with the mustUnderstand="1" attribute - which is why I added the breakpoint in the headerUnderstood method that iterates over the interceptors.
Flemming Jønsson opened SWS-874 and commented
I have a small spring-ws project with a simple XML config:
My Endpoint class uses
@Action
for mapping requests:I know this is not a valid implementation, I just want to illustrate that the global interceptor described in the XML config is not getting executed.
To figure out why I inserted a breakpoint inside org.springframework.ws.soap.server.SoapMessageDispatcher#headerUnderstood and when that breakpoint is triggered I can see that the only interceptor that is registered for my Endpoint is the org.springframework.ws.soap.addressing.server.AddressingEndpointInterceptor which got added because of the Action annotation in my endpoint.
I thought that any global interceptors in the XML configuration would end up being added to the interceptor chain for all endpoints regardles of how the endpoints were mapped?
However it seems this is not the case. At first Ifigured I must be doing something wrong, but I cannot find any description of how to add custom interceptors when using
@Action
. (This is my first time using@Action
and Spring-ws, so I may be mistaken)If I switch from using
@Action
to using@SoapAction
mappings instead my "XML" interceptors are added just fine.When using SoapActions I also have the option of registering interceptors for my mapping using the SoapActionAnnotationMethodEndpointMapping, but I could not find a similar endpointmapping class allowing me to register custom interceptors for WS addressing:
The only workaround I could find that would allow me to add my custom interceptors when using
@Action
was doing as this forum post describeshttp://forum.spring.io/forum/spring-projects/web-services/100060-interceptors-not-working-for-ws-addressing-endpoint-action?p=586915#post586915
If it is possible to add the interceptors when using WS-Addressing with Spring-ws in a simpler way it would be nice to get this documented. Otherwise I guess it must be a bug that the interceptors are not added to the endpoint?
Affects: 2.1.4
Referenced from: commits d43b880
The text was updated successfully, but these errors were encountered: