Olá pessoal, há muito tempo atrás eu vi um exemplo de como integrar uma aplicação desktop com web utilizando para isso EJB.
Após criado o aplicação corporativa (no netbeans) e o EJB, é criado um .jar. Com esse arquivo.jar ele deve ser adicionado as bibliotecas da aplicação desktop, para que a mesma consiga acessar os serviços providos pelo EJB.
Agora minha dúvida é a seguinte, como é e onde é configurada a aplicação desktop para que ela saiba onde está o EJB que está sendo executado?
Se fosse uma aplicação web normal que estivesse acessando o EJB, seria por meio da url do browser, mas no caso do desktop eu não sei onde é!
Esse é o EJB...package meusBeans;
import entidades.Customer;
import java.util.List;
import javax.ejb.Stateless;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;
import javax.ejb.TransactionManagement;
import javax.ejb.TransactionManagementType;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
@Stateless(mappedName="processaDados")
@TransactionAttribute(TransactionAttributeType.REQUIRED)
@TransactionManagement(TransactionManagementType.CONTAINER)
public class ProcessadadosBean implements ProcessadadosRemote {
@PersistenceContext
private EntityManager en;
public List<Customer> getCustomers(){
return en.createQuery("select cust from Customer cust").getResultList();
}
}
package meusBeans;
import javax.ejb.Remote;
@Remote
public interface ProcessadadosRemote {
public java.util.List<entidades.Customer> getCustomers();
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
try {
ProcessadadosRemote mySession = (ProcessadadosRemote)
new InitialContext().lookup("processaDados");
List<Customer> aux = mySession.getCustomers();
DefaultComboBoxModel dados = new DefaultComboBoxModel();
dados.addElement("");
for(Customer cust: aux){
dados.addElement(cust);
}
jComboBox1.setModel(dados);
} catch (NamingException ex) {
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
}
}