Para tanto, vamos utilizar o servio de converso que desenvolvemos
no tutorial Criando um WS com o Eclipse, da 1 semana o ConversorService. Antes de tudo, vamos fazer o deploy desse servio no servidor Apache. Para tanto, abra o projeto do Conversor no Eclipse e, com o boto direito no nome do projeto, escolha a opo Export War File. A janela que abre pergunta o destino do arquivo .war a ser gerado. Navegue (browse) at a pasta webapps de onde se encontra instalado o seu Apache Tomcat. O destino composto da pasta mais o nome do arquivo (que deve ser ConversorWS.war). Por exemplo, no meu computador a pasta a seguinte: C:\Program Files\Apache Tomcat 7\webapps\ConversorWS.war Feito isso, Abra o Eclipse e siga os passos seguintes: 1. Abra o Eclipse. 2. Ative o Servidor ODE. Opcional: se desejar testar se o servio de converso est ativo e funcionando, abra um navegador Web (ou o SoapUI) e direcione-o para http://localhost:8080/ConversorWS/services/Conversor?wsdl. Se tudo estiver ok, o wsdl dele aparecer! 3. Crie um novo projeto BPEL, chamado de BPELConversor. 4. Crie um processo BPEL. Conforme o exemplo:
No se esquea de que o processo do tipo sncrono e que o endereo do servio deve incluir a pasta ode/processes! 5. Quando o editor grfico abrir, troque o tipo da tarefa genrica para Invoke (algo similar foi feito no Ol Mundo BPEL) e adicione duas tarefas Assign (uma antes e uma depois do Invoke), conforme o exemplo:
6. Clique na atividade Fix_ME-Add_Business_Logic_Here e pressione F2. Com isso, voc poder trocar o nome dela para um mais significativo. Chame-a de InvokeConversor. Faa o mesmo para Assign e Assign1, conforme o exemplo:
7. Antes de seguir adiante, vamos importar o WSDL do servio de Converso. Para tanto, clique com o boto direito no nome do seu projeto (na pasta bpelContent) e selecione Import WSDL. Na janela que abre, digite a URL de onde se encontra o WSDL do WS conversor (http://localhost:8080/ConversorWS/services/ Conversor?wsdl). 8. Clique em InvokeConversor e v para sua janela de propriedades (abaixo do desenho). V para a aba details, conforme o exemplo:
9. Em Partner Link, selecione a opo Create Global Partner Link.:
10. Depois, vrias janelas aparecero. A primeira pergunta o nome do link para o servio parceiro:
11. A segunda associa um link parceiro a um servio. Como ns j importamos o WSDL do servio, ele deve aparecer. Basta selecion-lo, conforme o exemplo:
a) A janela seguinte pergunta que nome de tipo voc quer dar para o Link Type. Escolha um nome qualquer, como, por exemplo: conversorLTN. b) Finalmente, a ltima janela pergunta qual o papel que o servio ter dentro da composio. Escolha d o nome de ConversorRole e selecione Conversor. Clique em finish!
12. Precisamos configurar os tipos de dados do BPEL de maneira que eles sejam compatveis com os tipos do servio de converso. O servio de converso recebe floats e retorna floats. Para tanto, clique no ConversorInvocatorArtifacts.wsdl do seu projeto bpel:
13. Ao fazer isso, a janela seguinte aparece. Clique nas setas ao lado das operaes do ConversorInvocator, conforme o exemplo (em ConversorInvocatorRequest):
a) Ao fazer isso, abre-se uma nova janela como a seguinte. Clique no tipo e troque para float:
b) Salve e feche o arquivo. Depois, repita o processo para a outra seta (para o ConversorInvocatorResponse)!
14. Clique novamente em InvokeConversor e v para sua janela de propriedades (abaixo do desenho). V para a aba details e selecione o convesorws como Partner Link. Agora as operaes do novo servio parceiro devem estar aparecendo nas propriedades da tarefa Invoke. Selecione uma delas (celciusParaFarenheit, por exemplo):
a) Observe que, do lado direito, na seo Quick Pick, as funcionalidades do servio aparecem. D um clique duplo em celciusParaFarenheitRequest. Com isso, as variveis de entrada e sada dela sero adicionadas ao editor...
b) Se voc fez tudo direitinho at agora, duas novas variveis devem ter aparecido (ver figura abaixo). Confirme se isso ocorreu, pois voc precisar delas para os passos seguintes.
15. No editor grfico, clique na atividade AssignInputToWSInput e abra sua janela de propriedades. V para a aba details:
a) Clique em New para criar uma nova atribuio. Associe a varivel input com a varivel celciusParaFarenheit:
Aps selecion-las, clique no editor grfico. Ele vai perguntar se voc deseja criar um inicializador para a varivel. Responda que sim. 16. No editor grfico, selecione a outra tarefa de AssignWSResultToOutput, abaixo de Invoke, e abra sua janela de propriedades. V para a aba details e crie uma nova varivel para associar celciusParaFarenheitReturn com a varivel result, conforme o exemplo:
Novamente, clique no editor grfico. Ele vai perguntar se voc deseja criar um inicializador para a varivel. Responda que sim.
17. Clique no arquivo wsdl do processo bpel (timeinvocatorArtifacts.wsdl) e a seguinte tela deve aparecer:
18. Clique no ConversorInvocatorService e ajuste suas propriedades para que aponte para o endereo correto:
19. Crie um novo arquivo do tipo BPEL Deployment Descriptor:
20. Nele, ajuste o partner link de inbound interfaces para ConversorInvocatorPort e o de outbound interfaces para Conversor:
21. Salve tudo e faa o deploy do servio bpel recm criado (veja o tutorial HelloWorldBpel, caso no lembre).
22. Teste com o SoapUI ou com o Web services explorer do Eclipse.