Я вызываю Java-класс из BPEL через bpelx: exec.Это сильно упростило бы ситуацию, если бы класс смог выдать конкретный сбой (известный BPEL по одной из партнерских ссылок).Давайте назовем это AdapterFault.AdapterFault генерируется с помощью wsimport и подклассов Exception.
Вот код в блоке Embedded Java:
Object wfr = getVariableData("inputVariable","request");
Object req = getVariableData("V_CreateServiceRequest","createTNRequestPart");
somepackage.EndpointIterator it =
new somepackage.EndpointIterator();
it.setWFRequest(wfr);
it.setPlatformName("MMSC");
it.setOperationName("createTN");
it.setRequest(req);
Object reply = it.invoke();
setVariableData("V_CreateServiceResponse","createTNResponsePart",reply);
Когда я объявляю метод java выбрасывающим AdapterFault, BPEL отказывается развертывать, жалуясь наИсключение не зачитано.Кажется, что шаг вызова Java только объявляет BPELFault.
Я могу только генерировать RuntimeException, который идет в блок CatchAll вместо catch (AdapterFault).
Есть ли простой способ броситьпроверенный сбой от вызова Java?