Em um processo BPEL utilizamos o componente Java Embedding quando precisamos executar algum código java dentro do processo e, normalmente precisamos tratar algumas exceções que possam vir a ocorrer.
A questão é que as exceções lançadas a partir do java devem ser somente exceções do tipo com.oracle.bpel.client.BPELFault, não é possivel lançar qualquer outro tipo de exceção a partir do java para o processo BPEL. Toda a exceção java deve ser capturada e tratada dentro do java, e se for necessário lançar a exceção para o BPEL então deve ser lançada uma BPELFault.
O tipo BPELFault é especificado utilizando a javax.xml.namespace.QName que é passada como argumento para o contrutor do BPELFault.
Para "setar" os detalhes da exceção, como a mensagem de erro por exemplo, utilizamos o método setPart do BPELFault.
Segue exemplo de como lançar uma exceção BPELFault a partir do componente java.
Pronto! Agora é só testar.
Aproveitando o post sobre o componete Java Embedding, você sabe como fazer imports do java dentro do BPEL?
Quando existe necessidade de fazer imports (ou seja, sempre), estes não devem ser feitos dentro do componente java, devem ser feitos diretamente no código BPEL.
Para fazer imports no BPEL:
- Abra o arquivo .bpel;
- Clique na aba Source;
- Adicione a linha abaixo, logo no inicio do xml, por exemplo: logo abaixo da tag que representa a sequence principal.
Feito, agora já é possivel utilizar o que você importou dentro dos componentes java.