Vamos pensar que queremos rê-utilizar o mesmo método java em outros lugares do fluxo bpel, se fosse com Java Embedding teríamos que ficar replicando o código em vários pontos e isso não é nada interessante, para reutilizarmos o código java irei demonstrar como fazer isso utilizando o componente "Spring Context".
Demonstrarei somente um exemplo do que poderia ser feito com Spring Context no SOA Suite, caso queira saber mais, segue o link da documentação da versão 11.1.1.7 referente ao Spring Context
Vamos aos passos para a criação do projeto, POJO e utilização do Spring Context.
Passos:
1-) Crie um projeto do tipo SOA
2-) Crie uma package para o service
3-) Crie a seguinte interface
import java.util.Calendar;
public interface DateUtilService {
public Long compareDateTime(Calendar dateTime1, Calendar dateTime2);
}
4-) Crie uma package para a implementação
5-) Crie a classe Java que implementa a interface "DateUtilService"
package br.com.leonardosugahara.impl;
import br.com.leonardosugahara.service.DateUtilService;
import java.io.Serializable;
import java.util.Calendar;
public class DateUtilImpl implements DateUtilService, Serializable {
private static final long serialVersionUID = 1L;
final long DAY_MILLESECONDS = 1000 * 60 * 60 * 24;
public DateUtilImpl() {
super();
}
public Long compareDateTime(Calendar dateTime1, Calendar dateTime2) {
Long differenceMillesenconds = 0L;
Long days = 0L;
dateTime1.set(dateTime1.get(Calendar.YEAR),
dateTime1.get(Calendar.MONTH),
dateTime1.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
dateTime2.set(dateTime2.get(Calendar.YEAR),
dateTime2.get(Calendar.MONTH),
dateTime2.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
differenceMillesenconds = dateTime1.getTimeInMillis() - dateTime2.getTimeInMillis();
days = differenceMillesenconds / DAY_MILLESECONDS;
return days;
}
}
6-) Crie crie um BPEL para teste.
7-) Com o arquivo composite.xml aberto, arraste o "Spring Context" que se encontra em "Service Components" para a sessão "Components"
8-) Na popup "Create Spring" preencha o campo name, no caso irei nomear como "DateUtilSpring" e deixe a opção "Create New Context" selecionado e de "OK"
9-) Duplo clique em "DateUtilSpring" e o xml de configuração irá abrir. Configure conforme o trecho abaixo.
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:jee="http://www.springframework.org/schema/jee"
xmlns:lang="http://www.springframework.org/schema/lang"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:sca="http://xmlns.oracle.com/weblogic/weblogic-sca"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd http://www.springframework.org/schema/tool http://www.springframework.org/schema/tool/spring-tool-2.5.xsd http://xmlns.oracle.com/weblogic/weblogic-sca META-INF/weblogic-sca.xsd">
<!--Spring Bean definitions go here-->
<sca:service type="br.com.leonardosugahara.service.DateUtilService"
target="dateUtilImpl" name="DateUtilService"/>
<bean id ="dateUtilImpl"
class ="br.com.leonardosugahara.impl.DateUtilImpl"/>
</beans>
10-) Execute o comando de Rebuild do projeto, para que seja compilado as classes e não de erro no passo seguinte.
11-) No composite.xml crie uma ligação entre o BPEL e o DateUtilSpring para que seja criado um partnerLink no BPEL. Observe que o jdeveloper criou o wsdl da interface "DateUtilService".
12-) Abra o BPEL e verá o partnerLink. Arraste a atividade "Invoke" para o BPEL e
configure para chamar o "DateUtilService" que foi gerado no passo anterior.
13-) Configure uma atividade do tipo "Assign" passando as datas para serem comparadas, faça o deploy do pacote e teste o bpel. Verá algo como:
Nenhum comentário:
Postar um comentário