This topic was previously: "CXF as Client - Response Attachment -
HolderInInterceptor IndexOutOfBoundsException"
But this subject better represents the true issue
SwAInInterceptor is failing to handle the attachment because SoapBodyInfo is
null.
The relevant code from SwAInInterceptor.java is:
BindingOperationInfo bop = message.getExchange().getBindingOperationInfo()
if (bop.isUnwrapped()) {bop = bop.getWrappedOperation()}
boolean client = isRequestor(message) // client == true
BindingMessageInfo bmi = client ? bop.getOutput() : bop.getInput()
SoapBodyInfo sbi = bmi.getExtensor(SoapBodyInfo.class)
sbi is null at this point and a null check stops execution. So
messageContentsList is not populated with the attachment as it should be.
Using reflection to investigate the BindingMessageInfo object I learn:
1. No delegate is in use.
2. The only extensor available is "SOAPBody
({http://schemas.xmlsoap.org/wsdl/soap/}body): required=null use=literal".
3. Don't know if this is relevant, if I ask the SOAPBody extensor its class I
get "$Proxy42"
Since no extensor match is found for a SoapBodyInfo class we get a null value
returned, so sbi is null.
Anyone have any thoughts on why SoapBodyInfo is coming back null?
Thanks,
Kyle