Ray da Costa

« Concorrência ao iPhone abre disputa entre Google e Apple | Home | Exemplo de SessionFactory com Hibernete »

Conectar em EJB fora de EAR

de raydacosta | Sexta, 26 de Setembro de 2008

Gerando o context
public Context getContext() throws NamingException{
Hashtable props = new Hashtable();
props.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
props.put(Context.PROVIDER_URL,"localhost:1099");
props.put(Context.URL_PKG_PREFIXES,"org.jboss.naming:org.jnp.interfaces");
Context ctx = new InitialContext(props);
return ctx;
}

Consumindo
public FacadeAplicacaoRemote conectar() throws NamingException{
Context ctx = this.getContext();
FacadeAplicacaoRemote teste = (FacadeAplicacaoRemote) ctx.lookup("/FacadeAplicacaoBean/remote");
return teste;
}

Entty
@Entity
public class Aplicacao implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;

@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private List usuarios = new ArrayList();

@Column
private String nome = null;

public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

@Override
public int hashCode() {
int hash = 0;
hash += (id != null ? id.hashCode() : 0);
return hash;
}

@Override
public boolean equals(Object object) {
// TODO: Warning - this method won’t work in the case the id fields are not set
if (!(object instanceof Aplicacao)) {
return false;
}
Aplicacao other = (Aplicacao) object;
if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
return false;
}
return true;
}

@Override
public String toString() {
return “com.raysystem.aplicacaoweb.Aplicacao[id=” + id + “]”;
}

public List getUsuarios() {
return usuarios;
}

public void setUsuarios(List usuarios) {
this.usuarios = usuarios;
}

public String getNome() {
return nome;
}

public void setNome(String nome) {
this.nome = nome;
}

}

EJB

/**
*
* @author raydacosta
*/
//@Stateful(name="FacadeAplicacaoBean")
@Stateless(name="FacadeAplicacaoBean")
@Remote(value=FacadeAplicacaoRemote.class)
public class FacadeAplicacaoBean implements FacadeAplicacaoRemote {

@PersistenceContext
private EntityManager em;

public Aplicacao salvarAplicacao(Aplicacao parameter) {
System.out.println("vai");

if(em == null){
System.out.println("Mapeamento nao carregado.....");
}else{
System.out.println("Opa foi carrgados");
}

return this.savlar(parameter);

}

private Aplicacao savlar(Aplicacao a){
System.out.println("salvando");
if(a.getId() == null){
System.out.println("insert");
this.em.persist(a);
}else{
System.out.println("atualiza");
this.em.merge(a);
}
return a;
}

public Aplicacao find(long id){
return(Aplicacao) this.em.find(Aplicacao.class, id);
}

public void persist(Object object) {
em.persist(object);
}

}

Caso nao queria usar o hashtable, podemos configiura um arquivo jndi.properties, que tem que ficar no diretorio raiz do codigo (br.com.brteste) fia no br.
#Jboss
java.naming.provider.url=localhost
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces

Um arquio DS




MobiNoteDS
jdbc:mysql://localhost/mobilefast
com.mysql.jdbc.Driver
user

senha 5
500
288000
SELECT * FROM VisitaSynchro LIMIT 0,1



DefaultDS
jdbc:sqlserver://localhost:1433;DatabaseName=pubs</connection-url>
com.microsoft.sqlserver.jdbc.SQLServerDriver
sa

jboss org.jboss.resource.adapter.jdbc.vendor.MSSQLValidConnectionChecker


MS SQLSERVER2000



https://blueprints.dev.java.net/bpcatalog/ee5/persistence/ejbfacade.html
http://java.sun.com/javaee/5/docs/tutorial/doc/bnbrm.html

Categorias: J2EE |  | Enviar por e-mail  | Hits para esta publicação: 245

2 comentários para “ Conectar em EJB fora de EAR ”

  1. Arilson Says:
    Quarta, 12 de Novembro de 2008 at 11:59

    Ray,

    Há algum tempo venho tentando implementar algo parecido e n consigo, n consegui fazer nenhum teste de de um Ping pra retornar um “Pong!”.

    Uso GlassFish, já tentei de tudo e sempre há um erro, poderia me ajudar?

  2. raydacosta Says:
    Sábado, 15 de Novembro de 2008 at 09:40

    O Arilson, ainda nao usei o Glass para aplicações web, até preciso fazer isso… Mas acredito que nao seja muito diferente do JBoss, obs sei que o JBoss até dá uma ajudinha, configura algumas coisa, se ajusta a sua aplicação, mas já ouvi falar muito bem do Glass.. V c copnsegue passar o erro que esta ocorrendo… qm sabe nao consegimos juntos resolver este problema ;-) .