Este tutorial fornece uma visão geral do projeto de amostra, SynchronousSample e mostra o deployment, execução e teste de um processo BPEL síncrono por meio do NetBeans IDE 6.0 com todos os tempos de execução necessários.
O processo BPEL síncrono representa um fluxo síncrono simples. O processo obtém uma mensagem de entrada e envia essa mensagem de volta de forma síncrona. Um cliente inicia o processo síncrono chamando uma operação de solicitação-resposta. Depois de chamar um processo síncrono, o cliente é bloqueado até que o processo seja finalizado e retorne o resultado.
Neste tutorial, você usará um projeto BPEL simples chamado SynchronousSample e um projeto de aplicação composta chamado SynchronousSampleApplication. O projeto inclui os arquivos WSDL e de esquema XML, um descritor de deployment e os arquivos de entrada para teste. A interface do serviço Web desse processo é uma única operação síncrona.
Antes de prosseguir, revise os requisitos nesta seção.
Pré-requisitos
Este tutorial presume que você possui algum conhecimento básico ou experiência de programação na linguagem e na plataforma Java e no NetBeans IDE.
Requisitos do sistema
Este tutorial presume que o seu sistema atende aos requisitos especificados no tópico Requisitos do sistema das Notas de versão do NetBeans IDE 6.0.
Software necessário para o tutorial
Antes de começar, você precisa instalar o software seguinte em seu computador: NetBeans IDE 6.0 com SOA e o servidor da aplicação GlassFish, incluído no download "Todos" disponível no Download do NetBeans IDE 6.0.
Configurando e iniciando o servidor da aplicação GlassFish
Quando o download completo do NetBeans 6.0 é instalado, ele inclui o servidor da aplicação GlassFish. O NetBeans IDE iniciará automaticamente o servidor da aplicação quando necessário.
Para iniciar o servidor da aplicação GlassFish:
Se a janela Serviços não estiver visível, escolha Janela > Serviços.
Na janela Serviços, expanda o nó Servidores.
O nó Servidores deve conter um subnó do servidor da aplicação GlassFish. Se o nó do servidor da aplicação GlassFish não aparecer, vá para Para configurar o servidor da aplicação GlassFish.
Clique com o botão direito do mouse no nó do servidor da aplicação GlassFish e selecione Iniciar.
A janela de saída exibe informações de log sobre a inicialização da aplicação. Se a janela de saída não estiver visível, escolha Janela > Saída > Saída.
Quando a mensagem Inicialização do servidor da aplicação concluída aparecer na janela Saída, o servidor da aplicação estará em execução. Observação: se um emblema com uma seta verde aparecer no nó do servidor da aplicação GlassFish, o servidor estará sendo executado.
Observação: a implantação de uma aplicação no servidor da aplicação GlassFish iniciará automaticamente o servidor. Assim, não é necessário iniciar manualmente o servidor da aplicação.
Observação: o procedimento seguinte mostra como configurar o IDE para usar uma versão alternativa do servidor da aplicação GlassFish V2.
Para configurar o servidor da aplicação GlassFish V2:
Você pode querer usar uma versão diferente do servidor da aplicação da fornecida com o NetBeans 6.0. Por exemplo, pode querer baixar e instalar uma versão mais atual do servidor da aplicação GlassFish V2 do site da comunidade do GlassFish.
O seguinte procedimento mostra como configurar o NetBeans 6.0 IDE para usar uma versão alternativa do servidor da aplicação GlassFish V2. Ele supõe que você tenha baixado e instalado a versão alternativa do servidor da aplicação.
Na janela Serviços, clique com o botão direito do mouse no nó Servidores e escolha Adicionar servidor no menu pop-up.
A caixa de diálogo Adicionar instância do servidor é aberta.
Na página Escolher servidor, selecione GlassFish V2 na lista.
Clique em Próximo.
A página Localização da pasta da plataforma é aberta.
No campo Localização da plataforma, use o botão Procurar para navegar para o local de instalação do servidor da aplicação e selecionar esse local.
Se você tiver instalado o servidor da aplicação GlassFish no local padrão, use a Tabela 1 como um guia para localizar a instalação. Caso contrário, navegue para a localização onde você instalou o servidor da aplicação GlassFish V2.
Tabela 1: diretório padrão de instalação do servidor da aplicação
Plataforma
Instalando como...
Instalação da SOA
Instalação do conjunto de ferramentas
Solaris OS
Linux
raiz
/opt/glassfish-v2
/opt/SUNWappserver
Solaris OS
Linux
usuário
~/glassfish-v2
~/SUNWappserver
Mac OS X
N/D
/Applications/NetBeans/glassfish-v2b58g
/Applications/NetBeans/NetBeans 6.0
Windows
N/D
C:\Sun\AppServer
C:\Sun\AppServer
Selecione o botão de opção Registrar o domínio local padrão e clique em Próximo.
Indique o nome de usuário e a senha do administrador do domínio.
Caso você tenha aceitado os valores padrão durante a instalação, o nome de usuário é admin e a senha é adminadmin.
No menu principal do IDE, escolha Arquivo > Novo projeto.
O assistente para novo projeto é aberto.
Na lista Categorias, selecione Amostras> SOA.
Na lista Projetos, selecione Processo BPEL síncrono.
Clique em Próximo.
No campo Nome do projeto, digite SynchronousSample.
(Opcional) No campo Local do projeto, use o botão Explorar para navegar e selecionar uma pasta diferente, onde o IDE armazenará os arquivos do projeto.
Clique em Terminar.
A janela Projetos agora contém dois nós de projeto: um para um projeto BPEL chamado SynchronousSample, e um para um projeto de aplicação composta chamado SynchronousSampleApplication.
Na janela Projetos, expanda o nó SynchronousSample e expanda o nó Arquivos do processo.
O nó Arquivos do processo contém estes itens:
SynchronousSample.bpel, o processo BPEL
SynchronousSample.wsdl, a interface do serviço Web do processo.
SynchronousSample.xsd, o arquivo do esquema.
Clique duas vezes no nó SynchronousSample.bpel.
Observe o seguinte:
O BPEL Designer contém uma aba para SynchronousSample.bpel.
O diagrama SynchronousSample é mostrado na visualização Design.
A visualização Design é o designer visual dos processos comerciais. Nessa visualização, você pode modelar visualmente um processo comercial. O BPEL Designer gera automaticamente o código BPEL que corresponde ao design visual.
A Paleta da visualização de elementos BPEL se abre à direita.
A janela Navegador mostra a visualização lógica BPEL do processo BPEL.
Explorando o editor WSDL no editor de código-fonte
No editor WSDL, é possível criar e editar os arquivos Web Services Description Language (WSDL). O Editor WSDL inclui as visualizações Design, Código-fonte e Parceiro.
Para ver a visualização WSDL:
Na janela Projetos, clique duas vezes no arquivo SynchronousSample.wsdl.
Esse arquivo WSDL se abre na visualização WSDL.
Na visualização WSDL, o arquivo WSDL aparece como um componente de árvore onde você pode configurar elementos e atributos do arquivo.
Clique no botão Parceiro.
Os elementos abstratos de um arquivo WSDL representado como as interações entre os parceiros aparece na visualização Parceiro.
Na janela Projetos, expanda o nó SynchronousSample, o nó Arquivos do processo e clique duas vezes no nó SynchronousSample.bpel.
O IDE exibe o diagrama SynchronousSample.bpel na visualização Design.
Na seção Atividades estruturadas da Paleta, selecione o ícone If e arraste a sua seleção para a área de design entre as atividades Iniciar e Atribuir.
O IDE lhe oferece pistas visuais para mostrar onde você pode soltar a seleção.
Esta ação coloca uma atividade If chamada If1 na visualização Design.
Na visualização Design, clique na atividade If1.
A janela Mapeador BPEL é exibida na parte inferior do IDE.
Se o mapeador BPEL não estiver visível, escolha Janela > Mapeador BPEL. Use o mapeador BPEL para definir a condição Booleano. Observe que as seções na parte superior do Mapeador BPEL foram a barra de menus.
Na barra de menus, clique em Operador e selecione o método ==EQUAL .
O método == Equal aparece na parte do meio do Mapeador BPEL, que é chamada de painel de mapeamento.
Na barra de menus, clique no método String e selecione Literal de string na lista suspensa String.
A caixa Literal de string aparece no painel de mapeamento do Mapeador.
Digite Hello World no método de literal de string e pressione a tecla Enter.
Mova a caixa da literal de string e a caixa == Equal para o meio do painel de mapeamento.
No painel da árvore de origem do Mapeador BPEL, em Variáveis, expanda inputVar > inputType. paramA aparece em inputType.
Arraste paramA para a parte qualquer1 do método == Igual.
Selecione o pequeno quadrado no lado direito da caixa da literal de string. Quando o cursor em forma de mão estiver visível, arraste uma linha de conexão para a parte qualquer2 do método == Igual.
No método == Igual, arraste o booleano de retorno para o Resultado.
Adicionando a atividade Atribuir à visualização Design
Na visualização Design, arraste a atividade Atribuir1 existente para a atividade If1. Coloque essa atividade Atribuir entre ícones X grandes na área da atividade If1.
Na seção Atividades básicas da Paleta, arraste a atividade Atribuir para a visualização Design e coloque-a à direita do elemento Atribuir existente.
Selecione a nova atividade Atribuir2.
Na barra de menus do Mapeador, clique no método String e selecione concat na lista suspensa String.
O método concat aparece no painel de mapeamento do Mapeador BPEL.
Clique com o botão direito do mouse no primeiro campo na caixa concat e escolha Adicionar literal no menu pop-up.
Digite Hello seguido por espaço na primeira string e pressione Enter.
No painel da árvore de origem do Mapeador BPEL, expanda inputVar > inputType.
Arraste paramA para a parte seqüência2 do método concat, o segundo campo.
No painel da árvore de destino do Mapeador BPEL, expanda outputVar > resultType.
Arraste a string de retorno do método concat para paramA em outputVar > resultType.
Isso concatena a string Hello com a entrada e copia a declaração para a saída.
O deployment do projeto torna a composição de serviço disponível no servidor da aplicação, permitindo, portanto, que suas unidades de serviço sejam executadas.
Para implantar a aplicação composta:
Se a janela Saída não estiver visível, escolha Janela > Saída.
Clique com o botão direito do mouse no nó do projeto SynchronousSampleApplication e escolha Implantar projeto.
Na caixa de diálogo Aviso, verifique se o servidor GlassFish V2 está selecionado e clique em OK.
Observe que uma mensagem semelhante à seguinte é exibida na janela Saída: CONSTRUÇÃO BEM-SUCEDIDA.
Você pode aprimorar o projeto da aplicação composta, adicionando casos de teste, vinculando à operação, fornecendo saída e usando o testador.
Na janela Projetos, expanda o nó do projeto SynchronousSampleApplication, clique com o botão direito do mouse no nó Teste e escolha Novo caso de teste no menu pop-up.
O assistente para Novo caso de teste é aberto.
Para Nome, indique: MyTestCase e clique em Próximo.
Expanda SynchronousSample - Arquivos do processo, selecione SynchronousSample.wsdl e clique em Próximo
Selecione operação1 e clique em Terminar.
Observe na árvore do projeto, em Teste, que a nova pasta MyTestCase é criada, contendo dois arquivos: Input e Output.
Clique duas vezes em Input e modifique seu conteúdo da seguinte forma:
Localize a linha seguinte no conteúdo do corpo: <syn:paramA>?string?<syn:paramA>.
Substitua ?string? por Sherry.
A linha deve ficar da seguinte forma: <syn:paramA>Sherry<syn:paramA> .
Para salvar as suas alterações, no menu principal do IDE, escolha Arquivo > Salvar.
Clique duas vezes em Output.xml para examinar seu conteúdo.
Observe que antes da execução do teste esse arquivo está vazio.
Cada vez que o teste é executado, a saída atual é comparada com o conteúdo de Output. O Input é copiado para Output quando Output está vazio.
Na janela Projetos, navegue para o diretório SynchronousSampleApplication > Test > TestCase0.
O nó TestCase0 contém dois arquivos XML: Input para entrada e Output para saída.
Cada vez que o teste é executado, a saída atual é comparada com o conteúdo de Output.
Clique com o botão direito do mouse no nó do projeto TestCase0 e escolha Executar projeto no menu de contexto.
Observe essa mensagem na janela Resultados de teste JUnit:
Clique com o botão direito do mouse no nó MyTestCase e escolha Executar no menu pop-up.
Trata-se de um caso especial onde o arquivo Output está vazio e a saída é gravada em Output.
A caixa de diálogo Sobrescrever saída vazia se abre para que você possa confirmar que deseja sobregravar Output.xml.
Clique em Sim.
Observe a mensagem de falha:
Repita a etapa 3.
Depois da primeira execução, o arquivo Output.xml não está mais vazio; seu conteúdo é preservado e não é sobrescrito pelo novo resultado.