Pessoal, estou fazendo alguns teste com EJB e estudando mais a tecnologia.
Baixei um exemplo assim:
-
EJB-Remote-Server que gera um jar que é implantado no Servidor.
Nele tenho um SessionBean e uma Interface Remota -
Um Cliente com método Main que buscapor lookup o EJB implantado no servidor.
A minha dúvida é que no projeto cliente o maven
faz referência ao projeto Server
<!-- Business Interfaces of the server EJB. -->
<dependency>
<groupId>com.illucit</groupId>
<artifactId>ejb-remote-server</artifactId>
<type>ejb</type>
<version>${project.version}</version>
</dependency>
Eu desconfio que isso não seja necessário, pois não é cabível que eu tenha que ter todo código de implementação do servidor como dependencia na minha aplicação cliente. Eu imaginei que seu eu criasse uma interface com as mesmas assinaturas, já estaria apto a receber o ejb do container. Porém desta forma não funcionou.
Qual seria a estratégia para implantar um EJB no servidor que possa ser compartilhado por outras aplicações distintas?
Exemplo: posso ter um EJB com a lógica de aprovar pagamento de cartão de crédito?
Não faz sentido pra mim, ter que copiar o jar do server para outras 10 aplicações que fazem uso deste funcionalidade. Como não tenho experiencia em aplicações distribuídas com EJB, posso estar errado em minhas colocações. Gostaria da ajuda de vocês para melhor entender o real funcionamento do EJB em ambiente corporativo.