Bom pessoal a algum tempo venho estudando um pouco sobre aplicações distribuidas .Meio quebrando a cara meio acertando consegui avançar bastante nesse meio.Só que agora enrosquei num pedaço complicado q acho q ta me faltando conceito.
seguinte queria executar uma persistencia atraves de uma aplicação web
conseguir fazer deploy no jboss dos componentes só que quando tento chamar ele da aplicação diz…
$Proxy2 cannot be cast to prt.ejb.RetornaUsuarioLoginHome
será q é pq to criando como session bean?
segue os códigos se alguem puder me ajudar ficaria muito agradecido…
arquivo RetornaUsuarioLogin.java
package prt.ejb;
import javax.ejb.EJBObject;
import java.rmi.RemoteException;
public interface RetornaUsuarioLogin extends EJBObject
{
public boolean ok(String login,String senha) throws RemoteException;
public String version() throws RemoteException;
}
arquivo RetornaUsuarioLoginHome.java
package prt.ejb;
import javax.ejb.EJBHome;
import javax.ejb.CreateException;
import java.rmi.RemoteException;
public interface RetornaUsuarioLoginHome extends EJBHome {
public RetornaUsuarioLogin create() throws CreateException, RemoteException;
}
arquivo RetornaUsuarioLoginEJB.java
[code]
package prt.ejb;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
import prt.hibernate.*;
public class RetornaUsuarioLoginEJB implements SessionBean {
static final long serialVersionUID=1;
public boolean ok(String login,String senha)
{
try
{
System.out.println("Deletando Usuario");
DeleteUser del=new DeleteUser();
del.deletarUsuario(new Long(3));
System.out.println("Usuario Deletado");
return false;
}
catch (Exception e)
{
e.printStackTrace();
return false;
}
}
public String version()
{
return "Versão 1";
}
public void ejbCreate() {}
public void ejbPassivate() {}
public void ejbActivate() {}
public void ejbRemove() {}
public void setSessionContext(SessionContext context) {}
}
arquivo deleteUser.java
package prt.hibernate;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
public class DeleteUser
{
//public static void main(String[] args)
public void deletarUsuario(Long id_usu)
{
//Desse modo criamos tabelas
EntityManagerFactory emf=Persistence.createEntityManagerFactory("jpa-hibernate");
EntityManager em=emf.createEntityManager();
//Deletar um registro
em.getTransaction().begin();
em.remove(em.getReference(User.class, new Long(id_usu)));
em.getTransaction().commit();
//Fechar fabrica
em.close();
emf.close();
}
}
arquivo persistence.xml
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
version="1.0">
<persistence-unit name="jpa-hibernate">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:/PRT</jta-data-source>
<properties>
<!-- Para Criar tabelas use create para nao criar use none para value-->
<property name="hibernate.hbm2ddl.auto" value="none"/>
<property name="hibernate.format_sql" value="true"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
<property name="hibernate.connection.url" value="jdbc:mysql://localhost/jpa_hibernate"/>
<property name="hibernate.connection.username" value="root"/>
<property name="hibernate.connection.password" value=""/>
</properties>
</persistence-unit>
</persistence>
no console do jboss no jdniView mostra
± dof (class: org.jnp.interfaces.NamingContext)
| ± RetornaLoginUsuario (proxy: $Proxy75 implements interface prt.ejb.RetornaUsuarioLogin,interface org.jboss.ejb3.JBossProxy,interface javax.ejb.EJBObject)
A chamada no meu client está
RetornaUsuarioLoginHome home1=(RetornaUsuarioLoginHome) new ServiceLocator().getLookup(“dof/RetornaLoginUsuario”);
RetornaUsuarioLogin usuarioexiste = home1.create();
ao rodar tomo aquele erro
$Proxy2 cannot be cast to prt.ejb.RetornaUsuarioLoginHome
alguem tem ideia no que estou errando?