Criando o Entity Bean
package teste;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class Cliente implements Serializable {
private static final long serialVersionUID = 1L;
@Id
private int codigo;
private String nome;
private String endereco;
private String telefone;
public String toString() {
return String
.format("%20s%20s%20s%20s", codigo, nome, endereco, telefone);
}
public int getCodigo() {
return codigo;
}
public void setCodigo(int codigo) {
this.codigo = codigo;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
}
|
Criando o Session Bean
Interface Remota
package teste;
import java.util.List;
import javax.ejb.Remote;
@Remote
public interface ClienteBean {
void inserir(Cliente cliente);
List<Cliente> listar();
}
|
Implementação
package teste;
import java.util.List;
import javax.ejb.Stateless;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
@Stateless(name = "cli", mappedName = "ejb/ClienteBean")
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public class ClienteBeanImpl implements ClienteBean {
@PersistenceContext(unitName = "bean1")
private EntityManager em;
public void inserir(Cliente cliente) {
em.persist(cliente);
}
@TransactionAttribute(TransactionAttributeType.NEVER)
public List<Cliente> listar() {
Query query = em.createQuery("select c from Cliente c");
return query.getResultList();
}
}
|
Cliente do EJB
import java.util.List;
import java.util.Properties;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import teste.Cliente;
import teste.ClienteBean;
public class Consumo {
public static void main(String[] args) {
if (args.length == 0) {
System.out.println("Qtd de parametros incorreta");
System.exit(0);
}
int codigo = new Integer(args[0]);
try {
Properties props = new Properties();
props.setProperty("java.naming.factory.initial",
"com.sun.enterprise.naming.SerialInitContextFactory");
props.setProperty("java.naming.factory.url.pkgs",
"com.sun.enterprise.naming");
props.setProperty("java.naming.factory.state",
"com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");
// optional. Defaults to localhost. Only needed if web server is
// running
// on a different host than the appserver
props.setProperty("org.omg.CORBA.ORBInitialHost", "10.0.0.100");
// optional. Defaults to 3700. Only needed if target orb port is not
// 3700.
props.setProperty("org.omg.CORBA.ORBInitialPort", "3700");
InitialContext ctx = new InitialContext(props);
ClienteBean bean = (ClienteBean) ctx.lookup("ejb/ClienteBean");
Cliente cliente = new Cliente();
cliente.setCodigo(codigo);
cliente.setNome("antonio");
cliente.setEndereco("Rua 2");
cliente.setTelefone("6363-5252");
bean.inserir(cliente);
List<Cliente> lista = bean.listar();
for (Cliente c : lista) {
System.out.println(c);
}
} catch (NamingException e) {
e.printStackTrace();
}
}
}
|
Relação de .jar
Arquivos .jar necessários:
No ejb:
No cliente:
- appserv-rt.jar
- javaee.jar
- appserv-deployment-client.jar
Nenhum comentário:
Postar um comentário