@Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { try { return method.invoke(target, args); } catch (Exception e) { ExceptionResponseDto dto = ExceptionResponseDto.createFrom(e); // Create a standart fault SoapFault fault = new SoapFault(dto.getMessage(), SoapFault.FAULT_CODE_SERVER); // <detail> <type>TYPE</type> <stackTrace>stacktrace of cause</stackTrace> </detail> Element detailEl = fault.getOrCreateDetail(); Element typeEl = detailEl.getOwnerDocument().createElement("type"); typeEl.setTextContent(dto.getType()); detailEl.appendChild(typeEl); if (dto.getDetail() != null) { Element stackTraceEl = detailEl.getOwnerDocument().createElement("stackTrace"); stackTraceEl.setTextContent(dto.getDetail()); detailEl.appendChild(stackTraceEl); } throw fault; } } }
@Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { try { return method.invoke(target, args); } catch (Exception e) { ExceptionResponseDto dto = ExceptionResponseDto.createFrom(e); // Create a standart fault SoapFault fault = new SoapFault(dto.getMessage(), SoapFault.FAULT_CODE_SERVER); // <detail> <type>TYPE</type> <stackTrace>stacktrace of cause</stackTrace> </detail> Element detailEl = fault.getOrCreateDetail(); Element typeEl = detailEl.getOwnerDocument().createElement("type"); typeEl.setTextContent(dto.getType()); detailEl.appendChild(typeEl); if (dto.getDetail() != null) { Element stackTraceEl = detailEl.getOwnerDocument().createElement("stackTrace"); stackTraceEl.setTextContent(dto.getDetail()); detailEl.appendChild(stackTraceEl); } throw fault; } } }