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
@Endpoint
@Address("urn:schemas-xmlsoap-org:ws:2005:04:discovery")
public class WsDiscovery {
private static final String ENDPOINT_REFERENCE = "uuid:f7a32a18-5205-46f1-b296-e0f6ac9de7ed";
@Action(value = "http://schemas.xmlsoap.org/ws/2005/04/discovery/Resolve", output = "http://schemas.xmlsoap.org/ws/2005/04/discovery/ResolveMatches")
public @ResponsePayload JAXBElement<ResolveMatchesType> handleResolve(@RequestPayload JAXBElement<ResolveType> element) {
if (ENDPOINT_REFERENCE.equals(element.getValue().getEndpointReference().getAddress())) {
return new ObjectFactory().createResolveMatches(new ResolveMatchesType());
}
return null;
}
}
In the case where we the ENDPOINT_REFERENCE doesn't match, we don't want to send a response at all, and so the method returns 'null'. However, in all but the AbstractPayloadSourceMethodProcessor implementations, either a NullPointerException or IllegalArgumentException (from the Assert.notNull) will be thrown.
I believe handling null return values by suppressing the sending of a response is the most consistent approach, given that this is what Spring MVC does.
Phil McCarley opened SWS-867 and commented
Here is an example Endpoint...
In the case where we the ENDPOINT_REFERENCE doesn't match, we don't want to send a response at all, and so the method returns 'null'. However, in all but the AbstractPayloadSourceMethodProcessor implementations, either a NullPointerException or IllegalArgumentException (from the Assert.notNull) will be thrown.
I believe handling null return values by suppressing the sending of a response is the most consistent approach, given that this is what Spring MVC does.
Affects: 2.1.4
Referenced from: commits 06ff649
The text was updated successfully, but these errors were encountered: