Exemplo de uso de Spring Boot com Spring WS e Messageria.
Baseado na documentação do produto e evoluindo para uma POC temática de um projeto real e outros sites:
Objetivo: Fluxo onde um Parceiro envia um Processo Eletrônico com ids de Documento que preciso buscar em outro momento. Em um determinado momento eu envio um Movimento relacionado a um Processo Eletrônico recebido e o Parceiro busca Documentos que informei.
OBS.: Deve rodar com JDK 7 ou 8 (Spring Web Services requires a standard Java 7 Runtime Environment. Java 8 is also supported). Algumas classes de manipulação/parse de XML (javax.activation) foram removidas do "core" da linguagem. Achei este problema rodando com Java 10.x.
Executando:
- Rodar mvn clean compile para gerar as classes a partir do XSD.
- Rodar classe Application
- Acessar http://localhost:8080/processoEletronicoService/contrato.wsdl para ver o WSDL
- Com um client, enviar mensagem para o serviço (existe um projeto SoapUI pronto no fonte para isso).
Resultado Esperado:
- Exibir em logs no console mensagens indicando o recebimento e tratamento do Processo Eletrônico onde para cada Documento enviado uma mensagem na fila é colocada para ir "buscá-lo" no serviço do Parceiro.
Roadmap:
- Implementar testes.
- Implementar Mock Client do Parceiro.
- Implementar Endpoint do Parceiro já com testes.
- Implementar Mock Client da Minha Empresa.
Referências avaliadas:
-
https://docs.spring.io/spring-ws/docs/3.0.6.RELEASE/reference/#overview
-
https://howtodoinjava.com/spring-boot/spring-boot-soap-webservice-example/
-
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-messaging.html
-
https://examples.javacodegeeks.com/enterprise-java/jms/java-jms-helloworld-on-jboss-example/