Criando uma aplicação composta de processamento de empréstimos
Contribuição e manutenção de
e
Outubro de 2007 [Número da revisão: V1-2]
Esta publicação é aplicável à versão do NetBeans IDE 6.0.
Este tutorial fornece uma visão geral de uma aplicação composta de processamento de empréstimos simples e ilustra a implantação, execução e os testes de uma aplicação composta.
A aplicação composta de processamento de empréstimos satisfaz ao seguinte caso de uso comercial, também ilustrado na Figura 1:
O usuário pede um empréstimo, preenchendo uma solicitação de empréstimo, incluindo informações de identificação pessoal, total do empréstimo solicitado e histórico de crédito.
Quando a solicitação de empréstimo é recebida, as informações pessoais fornecidas pelo usuário são verificadas em um banco de dados existente, e a aprovação é concedida ou negada com base nas informações e na quantia solicitada.
Depois que algumas formalidades são cumpridas, um relatório, no formato de uma carta de aprovação, é gerado e enviado para o usuário, confirmando a aprovação do empréstimo.
Se o empréstimo for negado por algum motivo, é gerado e exibido um relatório mostrando o motivo da rejeição.
Figura 1: Caso de uso de processamento de empréstimo
Duração esperada: 45 minutos
Requisitos do tutorial
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.
Software necessário para este tutorial
Antes de começar, baixe e instale o seguinte software no seu computador: NetBeans 6.0. A opção de download completa inclui o SOA Pack e o servidor da aplicação GlassFish V2, que são necessários para este tutorial.
Configurando e iniciando o servidor da aplicação GlassFish
Antes de você poder implantar a aplicação, o servidor da aplicação GlassFish deve ser configurado corretamente e ser executado.
O download completo do NetBeans 6.0 inclui o servidor da aplicação GlassFish. Ao instalar o NetBeans 6.0, instale também o servidor da aplicação GlassFish.
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 um 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.
Uma mensagem informando que a inicialização do servidor da aplicação está concluída será exibida na janela de saída, indicando que o servidor da aplicação está 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. Você sabia que: a implantação de uma aplicação no servidor da aplicação GlassFish iniciará automaticamente o servidor da aplicação GlassFish. Assim, não é necessário iniciar manualmente o servidor da aplicação.
Para configurar o servidor da aplicação GlassFish V2:
Você pode querer usar uma versão diferente do servidor da aplicação daquela 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, da lista suspensa Servidor, selecione GlassFish V2.
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 o local onde 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/SUNWappserver
/opt/SDK
Solaris OS
Linux
usuário
~/SUNWappserver
~/SDK
Mac OS X
N/D
~/SUNWappserver
~/SDK
Windows
N/D
C:\Sun\AppServer
C:\Sun\SDK
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.
Clique em Terminar.
Criando o projeto do módulo BPEL
Nesta seção, você cria um projeto do módulo BPEL chamado LoanRequestor.
Para criar o projeto LoanRequestor:
No menu principal, escolha Arquivo > Novo arquivo.
O assistente para novo projeto é aberto.
Na lista Categorias, selecione o nó SOA e, na lista Projetos, selecione o nó Módulo BPEL.
Clique em Próximo.
No campo Nome do projeto, digite LoanRequestor.
(Opcional) No campo Localização do projeto, use o botão Procurar para navegar para o local onde o IDE irá armazenar os arquivos do projeto e selecionar esse local.
Clique em Terminar.
A janela Projetos agora contém um nó de um projeto do módulo BPEL chamado LoanRequestor.
Nesta seção, você adiciona um novo arquivo do esquema XML ao projeto do módulo BPEL e, em seguida, adiciona os componentes do esquema XML ao esquema.
Para criar LoanRequestor.xsd:
Na janela Projetos, expanda o nó do projeto LoanRequestor e clique com o botão direito do mouse no nó Processar arquivos e escolha Novo > Outro.
O assistente para Novo arquivo se abre.
No assistente para Novo arquivo, adote o seguinte procedimento:
Na página Escolher tipo de arquivo, na lista Categorias, selecione o nó XML e, na lista Tipos de arquivo, selecione o nó Esquema XML e clique em Próximo.
No campo Nome do arquivo, digite LoanRequestor.
Clique em Terminar.
Na janela Projetos, o nó Processar arquivos agora contém um subnó rotulado LoanRequestor.xsd. O Editor de código-fonte agora contém uma aba do arquivo do esquema XML, LoanRequestor.xsd, com a visualização Esquema aberta.
Na visualização Esquema, clique no botão Design para abrir a visualização Design do editor do esquema XML.
Para adicionar tipos complexos ao esquema XML:
Na Paleta da visualização Design, expanda a seção Componentes do esquema XML e selecione o ícone Tipo complexo.
Se a janela Paleta não estiver visível, escolha Janela > Paleta no menu principal.
Arraste a sua seleção para a área de design do esquema, imediatamente abaixo do nó Tipos complexos.
O IDE adiciona um nó Tipo complexo e o nome do tipo complexo (newComplexType) é selecionado e está pronto para ser alterado.
Digite processApplicType no novo nó e pressione Enter.
A área Design agora exibe o novo tipo complexo, chamado processApplicType.
Repita as etapas de 1 a 3 para criar o tipo complexo chamado processApplicRespType.
Para adicionar elementos locais em processApplicType:
Na seção Componentes XML da Paleta, selecione o ícone Elemento e arraste a seleção para o nó processApplicType na área de design do esquema.
O IDE adiciona um nó de elemento chamado newElement.
Se a janela Propriedades não estiver visível, escolha Janela > Propriedades.
Na área de design do Esquema, selecione o nó newElement.
Na janela Propriedades, selecione o campo de valor da propriedade Nome para torná-lo editável e digite socialSecurityNumber.
Na janela Propriedades, defina o campo de valor da propriedade Anulável como Verdadeiro.
Na janela Propriedades, na propriedade Definição, clique no botão de reticências.
A caixa de diálogo Definição é aberta.
Na lista, expanda o nó Tipos incorporados, selecione o nó string e clique em OK.
Repita as etapas 1 a 7 para adicionar os seguintes elementos:
Nome
Anulável
Definição
applicantName
Verdadeiro
string
applicantAddress
Verdadeiro
string
applicantEmailAddress
Verdadeiro
string
applicantAge
Verdadeiro
int
applicantGender
Verdadeiro
string
annualSalary
Verdadeiro
double
amountRequested
Verdadeiro
double
Para adicionar um elemento local a processApplicRespType:
Na seção Componentes XML da Paleta, selecione o ícone Elemento e arraste a seleção para o nó processApplicRespType na área de design do esquema.
O IDE adiciona um nó de elemento chamado newElement.
Na área de design do esquema, selecione o nó newElement.
Na janela Propriedades, selecione o campo de valor da propriedade Nome para torná-lo editável e digite return.
Na janela Propriedades, na propriedade Definição, clique no botão de reticências.
A caixa de diálogo Definição é aberta.
Na lista, expanda o nó Tipos incorporados e selecione o nó string.
Clique em OK.
Quando você tiver adicionado todos os elementos locais aos tipos complexos, a visualização Design deverá ter uma aparência similar à mostrada a seguir.
Para adicionar elementos globais:
Na seção Componentes de XML da Paleta, selecione o ícone Elemento e arraste a sua seleção para a área Design, imediatamente abaixo do nó Elementos.
O IDE adiciona um componente newElement abaixo dos nós Elementos na área de design do esquema.
Na área de design do Esquema da visualização Design, selecione o nó do newElement.
Na janela Propriedades, selecione o campo de valor da propriedade Nome para torná-lo editável e digite processApplicElement.
Na janela Propriedades, na propriedade Definição, clique no botão de reticências.
A caixa de diálogo Definição do elemento é aberta.
Na lista de tipos, expanda o nó Tipos complexos e selecione o nó do tipo complexo processApplicType.
Clique em OK.
Repita as etapas de 1 a 6 para adicionar outro elemento global chamado processApplicRespElement e selecione o tipo complexo processApplicRespType como a definição.
Para salvar suas alterações, na janela Projetos, selecione o nó do projeto LoanRequestor e, no menu principal, escolha Arquivo > Salvar todos.
Nesta seção, você adiciona um arquivo WSDL ao seu projeto do módulo BPEL e, em seguida, configura os componentes do documento WSDL.
Para criar LoanRequestor.wsdl:
Na janela Projetos, expanda o nó do projeto LoanRequestor, clique com o botão direito do mouse no nó Arquivos do processo e escolha Novo > Documento WSDL.
O assistente para Novo documento WSDL é aberto.
Na página Nome e localização, adote o seguinte procedimento:
No campo Nome do arquivo, digite LoanRequestor.
Marque a caixa de verificação Importar arquivo(s) do esquema XML.
No campo Esquema(s) XML, clique no botão Explorar.
A caixa de diálogo Adicionar importação é aberta. Esta caixa de diálogo mostra os esquemas XML que podem ser importados.
Expanda Por arquivo > LoanRequestor > Processar arquivos e selecione LoanRequestor.xsd.
Certifique-se de que a caixa de verificação na coluna Importar esteja selecionada para a linha LoanRequestor.xsd.
Clique em OK.
No assistente para Novo documento WSDL, clique em Próximo.
A página Configuração abstrata é aberta.
Na área Entrada da página Configuração abstrata, adote o seguinte procedimento:
Na coluna Nome da parte da mensagem, clique duas vezes no valor padrão para tornar o campo editável.
Digite requestLoanMessage e pressione Enter.
Na coluna Elemento ou Tipo, clique no botão de reticências.
A caixa de diálogo Selecionar elemento ou tipo é aberta.
Expanda Por arquivo > LoanRequestor > src/LoanRequestor.xsd > Elementos. Observação: talvez você tenha que rolar até a parte superior da lista na caixa de diálogo Selecionar elemento ou tipo para ver o nó Por arquivo.
No nó Elementos, selecione o nó processApplicElement e clique em OK.
Na área Saída da página Configuração abstrata, adote o seguinte procedimento:
Na coluna Nome da parte da mensagem, clique duas vezes no valor padrão para tornar o campo editável.
Digite responsePart e pressione Enter.
Na coluna Elemento ou Tipo, clique no botão de reticências.
A caixa de diálogo Selecionar elemento ou tipo é aberta.
Expanda Por arquivo > LoanRequestor > src/LoanRequestor.xsd > Elementos. Observação: talvez você tenha que rolar até a parte superior da lista na caixa de diálogo Selecionar elemento ou tipo para ver o nó Por arquivo.
No nó Elementos, selecione processApplicRespElement e clique em OK.
A página Configuração abstrata concluída deve ser parecida com a mostrada abaixo.
Clique em Terminar.
Na janela Projetos, o nó Arquivos do processo agora contém um subnó chamado LoanRequestor.wsdl. O Editor de código-fonte contém uma aba do arquivo WSDL, LoanRequestor.wsdl, com a visualização WSDL aberta.
A aplicação de empréstimo se comunica com seus serviços de parceiro através de suas interfaces públicas. Essas interfaces são definidas nos arquivos WSDL específicos do parceiro.
Neste tutorial, use um projeto J2EE chamado LoanProcessor. Você pode criar este projeto do zero seguindo as instruções em Criando um projeto do módulo EJB ou pode baixar os arquivos de projeto compactados em loanprocessing-loanprocessor.zip. O projeto LoanRequestor contém uma implementação básica do EJB de um serviço de parceiro.
O serviço Web de parceiro deve ser implantado no servidor GlassFish fornecido antes que você possa executar testes no LoanRequestorCompositeApp.
Essa implementação destina-se somente a servir como um harness de teste do processo do Serviço de empréstimos.
Para abrir o projeto LoanProcessor:
Baixe o arquivo loanprocessing-loanprocessor.zip e o extraia no diretório de trabalho do IDE.
Isso criará um diretório de projeto LoanProcessor.
No menu principal, escolha Arquivo > Abrir projeto.
O assistente para Abrir projeto é aberto.
Navegue para o diretório onde o projeto foi extraído, selecione o projeto LoanProcessor e clique em Abrir pasta do projeto.
Uma caixa de diálogo de progresso é exibida e, em seguida, o projeto é exibido na janela Projetos.
Para implantar o projeto LoanProcessor:
Clique com o botão direito do mouse no nó do projeto LoanProcessor e escolha Implantar e Desimplantar.
Espere até que a mensagem CONSTRUÇÃO BEM SUCEDIDA seja exibida na janela Saída.
Para verificar se a aplicação corporativa LoanProcessor foi implantada com êxito, alterne para a janela Serviços.
Na janela Serviços, expanda Servidores > Servidor da aplicação GlassFish > Aplicações > Módulos EJB.
Um nó LoanProcessor foi adicionado. Se este nó não estiver sendo exibido, o deployment falhou.
Na janela Projetos, expanda o nó do projeto LoanRequestor, clique com o botão direito do mouse no nó Arquivos do processo e selecione Novo > Processo BPEL.
O assistente para Novo processo BPEL é aberto.
No campo Nome do arquivo, digite LoanRequestor.
Clique em Terminar.
Na janela Projetos, o nó Arquivos do processo agora contém um subnó chamado LoanRequestor.bpel.
O Editor de código-fonte contém uma aba do processo BPEL, LoanRequestor.bpel, com a visualização Design do BPEL Designer aberta.
Para adicionar links de parceiro:
Na janela Projetos, expanda o nó do projeto LoanRequestor, expanda o nó Arquivos do processo e selecione o nó LoanRequestor.wsdl.
Arraste a sua seleção (LoanRequestor.wsdl) da janela Projetos para a visualização Design.
A caixa de diálogo Criar novo link de parceiro é aberta.
Altere o valor no campo Nome para BpelImplementation.
Aceite os outros valores padrão (Arquivo WSDL = /LoanRequestor.wsdl, botão de opção Usar tipo de link de parceiro existente) e clique em OK.
Na janela Projetos, expanda o nó do projeto do Módulo EJB LoanProcessor, expanda o nó Serviços Web e selecione o nó do serviço WebLoanProcessor.
Arraste a sua seleção (nó do serviço Web LoanProcessor) da janela Projetos para a visualização Design.
A caixa de diálogo Criar novo link de parceiro é aberta.
Altere o valor no campo Nome para EjbImplementation.
Aceite os outros valores padrão (Arquivo WSDL = /Partners/LoanProcessor/LoanProcessor.wsdl, botão de opção Usar um tipo de link de parceiro recém-criado) e clique em OK.
Observe que o IDE adicionou uma pasta Partners em LoanRequestor > Processar arquivos.
Expanda o nó Parceiros.
Observe que esta pasta contém o nó LoanProcessor que inclui LoanProcessor.wsdl, LoanProcessorWrapper.wsdl e LoanProcessor_xsd_1.xsd.
Para adicionar uma atividade Receber:
Na seção Serviço Web da Paleta, selecione o ícone Receber e arraste a seleção para a área Design entre as atividades Início do processo e Fim do processo.
O IDE lhe oferece pistas visuais para mostrar onde você pode soltar a seleção.
Esta ação coloca uma atividade Receber chamada Receber1 na visualização Design.
Clique duas vezes na atividade Receber1.
O Editor de propriedades de Receber1 [Receber] é aberto.
Altere o valor no campo Nome para ReceiveFromCustomer.
Na lista suspensa Link de parceiro, selecione BpelImplementation.
O IDE preenche o campo Operação com LoanRequestorOperation.
Clique no botão Criar ao lado do campo Variável de entrada e, na caixa de diálogo Nova variável de entrada, aceite os valores padrão e clique em OK.
Isto cria uma nova variável de entrada chamada LoanRequestorOperationIn.
Clique em OK para fechar o Editor de propriedades de Receber1 [Receber].
A atividade Receber agora está rotulada como ReceiveFromCustomer na visualização Design e uma conexão é mostrada entre o link de parceiro BpelImplementation e a atividade Receber no processo LoanRequestor.
Para adicionar uma atividade Chamar:
Na seção Serviço Web da Paleta, selecione o ícone Chamar e arraste a sua seleção para a área Design abaixo da atividade ReceiveFromCustomer.
O IDE lhe oferece pistas visuais para mostrar onde você pode soltar a seleção.
Esta ação coloca uma atividade Chamar denominada Chamar1 na visualização Design.
Clique duas vezes na atividade Chamar1.
O Editor de propriedades de Chamar1[Chamar] é aberto.
Altere o valor no campo Nome para InvokeLoanProcessorEJB.
Na lista suspensa Link de parceiro, selecione EjbImplementation.
O IDE preenche o campo Operação com processApplicOperation.
Clique no botão Criar ao lado do campo Variável de entrada e, na caixa de diálogo Nova variável de entrada, aceite os valores padrão e clique em OK.
Isto cria uma nova variável de entrada chamada ProcessApplicOperationIn.
Clique no botão Criar ao lado do campo Variável de saída e, na caixa de diálogo Nova variável de saída, aceite os valores padrão e clique em OK.
Isto cria uma nova variável de saída chamada ProcessApplicOperationOut.
Clique em OK para fechar o Editor de propriedades de Chamar1[Chamar].
A atividade Chamar agora está rotulada como InvokeLoanProcessorEJB na visualização Design e uma conexão é mostrada entre a atividade Chamar no processo LoanRequestor e o link de parceiro EjbImplementation.
Para adicionar uma atividade Responder:
Na seção Serviço Web da Paleta, selecione o ícone Responder e arraste a sua seleção para a área Design abaixo da atividade InvokeLoanProcessorEJB.
O IDE lhe oferece pistas visuais para mostrar onde você pode soltar a seleção.
Esta ação coloca uma atividade Responder chamada Responder1 na visualização Design.
Clique duas vezes na atividade Responder1.
O Editor de propriedades de Responder1 [Responder] é aberto.
Altere o valor no campo Nome para ReplyToCustomer.
Na lista suspensa Link de parceiro, selecione BpelImplementation.
O IDE preenche o campo Operação com LoanRequestorOperation.
Verifique se o botão de opção Resposta normal está selecionado.
Clique no botão Criar ao lado do campo Variável de saída e, na caixa de diálogo Nova variável de saída, aceite os valores padrão e clique em OK.
Isto cria uma nova variável de saída chamada LoanRequestorOperationOut.
Clique em OK para fechar o Editor de propriedades de Responder1 [Responder].
A atividade Responder agora está rotulada como ReplyToCustomer na visualização Design.
Para adicionar a atividade Atribuir CopyCustomerInfo:
Na seção Atividades básicas da Paleta, selecione o ícone Atribuir e arraste a sua seleção para a área Design entre as atividades Receber e Chamar.
O IDE lhe oferece pistas visuais para mostrar onde você pode soltar a seleção.
Esta ação coloca uma atividade Atribuir chamada Atribuir1 na visualização Design.
Se a janela Propriedades não estiver visível, escolha Janela > Propriedades no menu principal.
Na visualização Design, selecione a atividade Atribuir1.
Na janela Propriedades, altere a propriedade id para save.
Se a janela Mapeador BPEL não estiver visível, escolha Janela > Outro > Mapeador BPEL no menu principal.
Se o Mapeador BPEL não contiver as informações para CopyCustomerInfo, na visualização Design, selecione a caixa do processo LoanRequestor e, em seguida, selecione a atividade Atribuir CopyCustomerInfo. Isto atualizará as informações no Mapeador BPEL.
No painel de origem (o painel da esquerda) do Mapeador BPEL, no nó Variáveis, expanda os nós LoanRequestorOperationIn e requestLoanMessage.
Um nó é mostrado para cada elemento local no tipo complexo processApplicType no esquema criado anteriormente.
No painel de destino (o painel da direita) do Mapeador BPEL, no nó Variáveis, expanda os nós ProcessApplicOperationIn e parâmetros.
Os mesmos elementos do esquema são mostrados como nós neste nó parâmetros.
Arraste socialSecurityNumber do painel de origem para o nó socialSecurityNumber no painel de destino.
Repita a etapa 8 para as seguintes variáveis: applicantName, applicantAddress, applicantEmailAddress, applicantAge, applicantGender, annualSalary e amountRequested.
Para salvar suas alterações, na janela Projetos, selecione o nó do projeto LoanRequestor e, no menu principal, escolha Arquivo > Salvar todos.
Para adicionar a atividade Atribuir CopyLoanStatus:
Na seção Atividades básicas da Paleta, selecione o ícone Atribuir e arraste a sua seleção para a área Design entre as atividades Receber e Chamar.
Esta ação coloca uma atividade Atribuir chamada Atribuir1 na visualização Design.
Selecione a nova atividade Atribuir1.
Na janela Propriedades, altere o valor a propriedade Nome para CopyLoanStatus.
Se a janela Mapeador BPEL não estiver visível, escolha Janela > Outro > Mapeador BPEL no menu principal.
No painel de origem do Mapeador BPEL, no nó Variáveis, expanda os nós ProcessApplicOperationOut e parâmetros.
Um nó retorno aparece em parâmetros.
No painel de destino do Mapeador BPEL, no nó Variáveis, expanda os nós LoanRequestorOperationOut e responsePart.
Um nó retorno aparece em responsePart.
Arraste retorno do painel de origem para o nó retorno no painel de destino do Mapeador BPEL.
Para salvar suas alterações, na janela Projetos, selecione o nó do projeto LoanRequestor e, no menu principal, escolha Arquivo > Salvar todos.
Na janela Projetos, clique com o botão direito do mouse no nó do projeto LoanRequestor e escolha Limpar e construir projeto.
Se uma mensagem CONSTRUÇÃO BEM SUCEDIDA aparecer na janela de saída, a construção foi realizada com êxito.
Antes de implantar o projeto do módulo BPEL, você deve criar uma aplicação composta. 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 criar o projeto da aplicação composta:
No menu principal, escolha Arquivo > Novo arquivo.
O assistente para novo projeto é aberto.
Na lista Categorias, selecione o nó SOA.
Na lista Projetos, selecione o nó Aplicação composta.
Clique em Próximo.
No campo Nome do projeto, digite LoanRequestorCompositeApp.
Clique em Terminar.
A janela Projetos agora contém um nó do projeto de aplicação composta chamado LoanRequestorCompositeApp.
Usando o Editor Composite Application (Service Assembly)
Nesta seção, use o Editor CASA (Composite Application Service Assembly) para modificar a configuração do projeto e construir o projeto do módulo BPEL. Em seguida, adicione uma conexão e um ponto final WSDL e depois verifique e altere as propriedades dos pontos finais WSDL gerados automaticamente.
Para usar o Editor CASA (Composite Application Service Assembly) para modificar a configuração do projeto e construir o projeto do módulo BPEL:
Na janela Projetos, selecione o nó do projeto LoanRequestorCompositeApp e escolha Editar configuração da aplicação no menu pop-up.
O IDE abre o arquivo .casa no Editor CASA. A área de design da visualização Design do editor possui três partes: Portas WSDL, Módulos JBI e Módulos externos.
Na janela Projetos, selecione o nó do projeto LoanRequestor e arraste a sua seleção para a área Módulos JBI na visualização Design do arquivo LoanRequestorCompositeApp.casa.
Na barra de ferramentas do editor, clique no botão Construir projeto para construir o projeto do Módulo BPEL LoanRequestor.
Após concluir esta etapa:
A barra de status exibe a seguinte mensagem: Construção de build.xml (jbi-build) finalizada.
A janela de saída deve ter uma aparência semelhante à mostrada abaixo.
A visualização Design do arquivo LoanRequestorCompositeApp.casa deve parecer com a mostrada abaixo.
Para criar o ponto final WSDL:
Na seção Vinculações WSDL da Paleta, selecione o ícone soap.
Arraste a sua seleção para a área Portas WSDL na visualização Design do arquivo LoanRequestorCompositeApp.casa.
O IDE adiciona uma porta WSDL rotulada como casaPort1.
Para criar uma conexão:
Na porta casaPort1 na visualização Design, clique no ícone do ponto final Consume, .
As cores do ícone são alteradas quando você seleciona o ponto final: .
Arraste a sua seleção para LoanRequestorPortTypeRole_myRole na caixa (BPEL) LoanRequestor na área Módulos JBI.
O IDE cria uma nova conexão.
Você pode aprimorar o projeto da aplicação composta, adicionando casos de teste, vinculando à operação, fornecendo saída e usando o testador.
Para implantar a aplicação composta:
Clique com o botão direito do mouse no nó do projeto LoanRequestorCompositeApp e escolha Implantar projeto.
Se a mensagem CONSTRUÇÃO BEM SUCEDIDA for exibida na janela Saída, então o deployment foi bem sucedido.
Para adicionar o caso de teste para uma requisição aprovada:
Na janela Projetos, expanda o nó do projeto LoanRequestorCompositeApp, 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.
No campo Nome do caso de teste, digite ApprovedTestCase e clique em Próximo.
Na página Selecionar o documento WSDL, expanda o nó LoanRequestor - Arquivos do processo, selecione LoanRequestor.wsdl e clique em Próximo.
Na página Selecionar a operação a ser testada, selecione LoanRequestorOperation e clique em Terminar.
Na janela Projetos, o IDE adicionou um novo nó em Teste, ApprovedTestCase. Este nó possui dois subnós: Entrada e Saída. O Editor de código-fonte contém uma aba do arquivo de entrada, Input.xml.
Observação: se o Editor de código-fonte não contiver uma aba para Input.xml, clique duas vezes no nó Entrada na janela Projetos para abrir o arquivo.
Na aba Editor de código-fonte do arquivo Input.xml, defina os valores de variáveis substituindo estas linhas de código:
<loan:socialSecurityNumber>111-11-1111</loan:socialSecurityNumber>
<loan:applicantName>May JavaOne</loan:applicantName>
<loan:applicantAddress>1601 Willow Road, Menlo Park, CA 94025</loan:applicantAddress>
<loan:applicantEmailAddress>mayj12007@gmail.com</loan:applicantEmailAddress>
<loan:applicantAge>36</loan:applicantAge>
<loan:applicantGender>feminino</loan:applicantGender>
<loan:annualSalary>100000</loan:annualSalary>
<loan:amountRequested>1000000</loan:amountRequested>
No menu principal do , escolha Arquivo > Salvar todos.
Feche a aba do Editor de código-fonte de Input.xml.
Para adicionar o caso de teste para uma requisição rejeitada:
Na janela Projetos, expanda o nó do projeto LoanRequestorCompositeApp, 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.
No campo Nome do caso de teste, digite RejectedTestCase e clique em Próximo.
Na página Selecionar o documento WSDL, expanda o nó LoanRequestor - Arquivos do processo, selecione LoanRequestor.wsdl e clique em Próximo.
Na página Selecionar a operação a ser testada, selecione LoanRequestorOperation e clique em Terminar.
Na janela Projetos, o IDE adicionou um novo nó em Teste, RejectedTestCase. Este nó possui dois subnós: Entrada e Saída. O Editor de código-fonte contém uma aba do arquivo de entrada, Input.xml.
Observação: se o Editor de código-fonte não contiver uma aba para Input.xml, clique duas vezes no nó Entrada na janela Projetos para abrir o arquivo.
Na aba Editor de código-fonte do arquivo Input.xml, defina os valores de variáveis substituindo estas linhas de código:
No menu principal do , escolha Arquivo > Salvar todos.
Feche a aba do Editor de código-fonte de Input.xml.
Para preencher o arquivo de teste com informações de linha de base para ApprovedTestCase:
Na janela Projetos, clique duas vezes no nó Saída em ApprovedTestCase para examinar o conteúdo do arquivo.
Observe que, inicialmente, Output.xml está vazio.
Na janela Projetos, clique com o botão direito do mouse no nó ApprovedTestCase e escolha Executar no menu pop-up. Observação: a primeira execução é um caso especial porque Output.xml está vazio e o IDE não pode comparar os resultados do teste com o conteúdo de Output.xml. Observe a mensagem de falha na janela Saída.
A caixa de diálogo Sobrescrever saída vazia? é aberta.
Clique em Sim.
O IDE preenche o Output.xml com informações padrão. Esta versão do arquivo agora contém as informações de linha de base que serão usadas nas execuções de teste subseqüentes. Esta versão do arquivo também é conhecida como arquivo "final".
Para preencher o arquivo de teste com informações de linha de base para RejectedTestCase:
Na janela Projetos, clique duas vezes no nó Saída em RejectedTestCase para examinar o conteúdo do arquivo.
Observe que, inicialmente, Output.xml está vazio.
Na janela Projetos, clique com o botão direito do mouse no nó RejectedTestCase e escolha Executar no menu pop-up. Observação: a primeira execução é um caso especial porque Output.xml está vazio e o IDE não pode comparar os resultados do teste com o conteúdo de Output.xml. Observe a mensagem de falha na janela Saída.
A caixa de diálogo Sobrescrever saída vazia? é aberta.
Clique em Sim.
O IDE preenche o Output.xml com informações padrão. Esta versão do arquivo agora contém as informações de linha de base que serão usadas nas execuções de teste subseqüentes. Esta versão do arquivo também é conhecida como arquivo "final".
Para executar os testes:
Na janela Projetos, clique com o botão direito do mouse no nó ApprovedTestCase e escolha Executar no menu pop-up.
Observe que o conteúdo de Output.xml é preservado e não é sobrescrito pelo novo resultado. Você pode clicar duas vezes no nó que representa o teste realizado com êxito (imediatamente abaixo do nó Saída) para ver os resultados.
Na janela Projetos, clique com o botão direito do mouse no nó RejectedTestCase e escolha Executar no menu pop-up.
Observe que o conteúdo de Output.xml é preservado e não é sobrescrito pelo novo resultado. Você pode clicar duas vezes no nó que representa o teste realizado com êxito (imediatamente abaixo do nó Saída) para ver os resultados.
No Editor de código-fonte, feche todos os documentos.
Neste tutorial, use um projeto J2EE chamado LoanProcessor. Você pode criar este projeto do zero seguindo as instruções nesta seção ou pode baixar os arquivos de projeto compactados em loanprocessing-loanprocessor.zip.
Para criar o projeto do módulo EJB:
No menu principal, escolha Arquivo > Novo arquivo.
Na lista Categorias, selecione o nó Empresa e, na lista Projetos, selecione o nó Módulo EJB.
Clique em Próximo.
No campo Nome do projeto, digite LoanProcessor.
(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 EJB.
Clique em Terminar.
A janela Projetos agora contém um nó de um projeto do módulo EJB chamado LoanProcessor.
Para criar um serviço Web:
Na janela Projetos, clique com o botão direito do mouse no nó do projeto LoanProcessor e escolha Novo > Serviço Web no menu pop-up.
O assistente para Novo serviço Web se abre.
No assistente para Novo serviço Web, adote o seguinte procedimento:
Na página Nome e localização, no campo Nome do serviço Web, digite LoanProcessor.
No campo Pacote, digite com.sun.loanprocessor.
Clique em Terminar.
O IDE cria o serviço Web e abre o LoanProcessor no Editor de código-fonte.
Na janela Projetos, expanda o nó do projeto LoanProcessor e, em seguida, expanda o nó Serviços Web.
Clique com o botão direito do mouse no nó LoanProcessor (o serviço web) e escolha Adicionar operação.
A caixa de diálogo Adicionar operação é aberta.
No campo Nome, digite processApplicOperation.
Na aba Parâmetros, adicione os sete parâmetros a seguir clicando no botão Adicionar e completando a linha que o IDE adiciona para cada parâmetro.
Nome
Tipo
socialSecurityNumber
java.lang.String
applicantName
java.lang.String
applicantAddress
java.lang.String
applicantEmailAddress
java.lang.String
applicantAge
java.lang.Integer
applicantGender
java.lang.String
annualSalary
java.lang.Double
amountRequested
java.lang.Double
Na caixa de diálogo Adicionar operação, clique em OK.
No Editor de código-fonte, clique no botão Código-fonte para mostrar a visualização Código-fonte do arquivo LoanProcessor.java.
Observe que o IDE atualizou o documento LoanProcessor.java com um esqueleto do método processApplicOperation.
No Editor de código-fonte, substitua
/*
* TODO escreva o código de implementação aqui:
*/
return null;
pelo seguinte código:
int MINIMUM_AGE_LIMIT = 18;
int MAXIMUM_AGE_LIMIT = 65;
double MINIMUM_SALARY = 20000;
int AVERAGE_LIFE_EXPECTANCY = 70;
String result = "Pedido de empréstimo APROVADO".;
// Verificar idade do candidato
// Se for menor que a idade mínima, rejeitar
if(applicantAge < MINIMUM_AGE_LIMIT) {
result = "Pedido de empréstimo REJEITADO - Motivo: Abaixo da idade " +
applicantAge +
". Idade deve ser maior que " +
MINIMUM_AGE_LIMIT +
" anos para ser aceita".;
System.out.println(result);
return result;
}
// Verificar idade do candidato
// Se for maior que a idade máxima, rejeitar
if(applicantAge > MAXIMUM_AGE_LIMIT) {
result = "Pedido de empréstimo REJEITADO - Motivo: Acima da idade " +
applicantAge +
". Idade deve ser menor que " +
MAXIMUM_AGE_LIMIT +
" anos para ser aceita".;
System.out.println(result);
return result;
}
// Verificar salário anual
// Se for menor que o salário mín, rejeitar
if(annualSalary < MINIMUM_SALARY) {
result = "Pedido de empréstimo REJEITADO - Motivo: Salário anual $" +
annualSalary +
" muito baixo. O salário anual deve ser maior que $" +
MINIMUM_SALARY +
" para ser aceito".;
System.out.println(result);
return result;
}
// Calcular os anos para pagar empréstimo com base em applicantAge
int yearsToRepay = AVERAGE_LIFE_EXPECTANCY - applicantAge;
// Calcular o valor máx de empréstimo com base nos anos para pagamento do empréstimo
double limit = annualSalary * yearsToRepay * 0.5;
// Verificar valor solicitado, se maior que o limite, rejeitar
if(amountRequested > limit) {
result = "Pedido de empréstimo REJEITADO - Motivo: Você está solicitando muito $" +
amountRequested +
". Salário anual de $"+annualSalary+", "+applicantAge+" anos de idade. O limite é $" +
limit;
System.out.println(result);
return result;
}
System.out.println(result);
return result;
Para salvar as alterações, escolha Arquivo > Salvar do menu principal.
(Opcional) Feche a aba LoanProcessor no Editor de código-fonte.
Para enviar comentários e sugestões, obter suporte e manter-se informado sobre as alterações mais recentes nos recursos de desenvolvimento do NetBeans IDE J2EE , junte-se à lista de usuários em
.