Добавить пользовательскую ошибку в ответ мыла.Это можно сделать одним из двух способов.1) Простое создание исключения Java с сообщением приведет к простой ошибке Axis2
Пример:
throw new java.lang.UnsupportedOperationException("Please implement " +
this.getClass().getName() + "#SomeOperationName");
Также обратите внимание: если вы сгенерировали свой сервис с помощью утилиты Axis2 WSDL2JAVA, строкавыше будет добавлено в источник MyServiceName_Skeleton для каждой определенной операции WSDL.
После развертывания .aar подключение к каждой операции можно проверить с помощью веб-браузера, например, https://server:port/axis2/services/MyServiceName?SomeOperationName
.2) Убедитесь, что WSDL определяет необязательную (происходит: 0) пользовательскую структуру Fault.Это может быть отправлено клиенту с другими необходимыми (и пустыми) элементами.
Пример:
com.some.service.operation.SomeOperationNameResponse_Type OPRT = new com.some.service.operation.SomeOperationNameResponse_Type();
com.some.service.SomeOperationNameResponse OPR = new com.some.service.SomeOperationNameResponse();
.
.
.
if ((rcStatusString.equals("Succeeded")) || (rcStatusString.equals("Warning"))) {
<build happy path response>
} else if (rcStatusString.equals("Failed")) {
final MYFault fault = new MYFault();
final MYFault_Type faultType = new MYFault_Type();
final MYFaultList faultList = new MYFaultList();
final MYFaultList_Type faultListType = new MYFaultList_Type();
faultType.setFaultCode("10100");
faultType.setFaultSubcode("9999");
faultType.setFaultType(FaultType_Enum.SYSTEM);
faultType.setFaultReasonText("Some Operation Failed");
faultType.setSeverity(FaultSeverity_Enum.CRITICAL_ERROR);
//fault.setMYFault(faultType);
faultListType.addMYFault(faultType);
OTHRTYPE.setAValue("");
OPRT.setAValueType(OTHRTYPE);
OPRT.setMYFaultList(faultListType);
} else {
throw new java.lang.UnsupportedOperationException(
"MYSERVICE: [Some Operation] Session: "+sessVal+" Request ID: "+rcRequestId+" Unrecognized Completion Status ["+rcStatusString+"]");
}
OPR.setSomeOperationResponse(OPRT);
return OPR;
}