We recently ran into some interesting behavior caused by ASM.

We use the @ResponseWrapper in one of our services to change the name of the 
Response element returned by our service.

With ASM 3.3 on the classpath (which is transitive dependency on 
cxf-rt-frontend-jaxws)  calling the following

MessageInfo info = (MessageInfo) 
message.get("org.apache.cxf.service.model.MessageInfo");
String method = info.getName().getLocalPart();

Would ignore the @ResponseWrapper and just return the usual name.  When we 
excluded ASM from our classpath it would take into account the @ResponseWrapper 
annotation.

In digging into this we discovered that with ASM on the classpath the following

message.getExchange().getBindingOperationInfo().getWrappedOperation().getOutput().getMessageInfo().getMessageParts().get(0).getTypeClass()

would return an ASM generated class, otherwise it was null.

Can anyone explain this behavior?  Also why having ASM on our classpath would 
ignore the @ResponseWrapper

Tim



 NOTICE: This email message is for the sole use of the intended recipient(s) 
and may contain confidential and privileged information. Any unauthorized 
review, use, disclosure or distribution is prohibited. If you are not the 
intended recipient, please contact the sender by reply email and destroy all 
copies of the original message.


Reply via email to