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

Reply via email to