Я вызываю класс 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 отказывается развертываться, жалуясь, что Exception не перехвачен. Кажется, что шаг выноски Java только объявляет BPELFault.
Я могу только сгенерировать исключение RuntimeException, которое переходит в блок CatchAll вместо catch(AdapterFault).
Есть ли простой способ сбросить проверенную ошибку из вызова java?