Problema ao integrar JPA(hibernate) com o client

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?

Certa vez tive um problema assim, para resolver tive que Serializar o objeto,criar um pacote com o mesmo nome do componente só com as *.class e colocar na aplicação web.

Quer uma dica, já que esta se batendo e coisa e tal, porque que não começa a trabalhar com EJB3 ? Antes utilizava o EJB migrei para o EJB3, é bem mais simples de manipular.

t+

[quote=rodrigo_ctba]Certa vez tive um problema assim, para resolver tive que Serializar o objeto,criar um pacote com o mesmo nome do componente só com as *.class e colocar na aplicação web.

Quer uma dica, já que esta se batendo e coisa e tal, porque que não começa a trabalhar com EJB3 ? Antes utilizava o EJB migrei para o EJB3, é bem mais simples de manipular.

t+[/quote]

então …o duro é q so começou a acontecer isso quando eu integrei com o jboss o persistence.xml se fosse uma consulta normal de datasource vai na boa…mais nao teria persistencia nenhuma o serviço ta no ar no jboss só q na chamada ta dando esse erro de cast q num faço a minima ideia do que seja…ta fogo viu…entao a ideia de colocar os class na aplicação web num vira ja q a ideia é ser distribuido…

sei lá …se alguem mais ai tiver alguma ideia…

Um cliente pode acessar um session ou um entity bean somente com os métodos definidos nas interfaces do bean, se vc. fizer um componente distribuído necessariamente deve ter a Interface do EJB no Cliente.

Desta forma, se vc. estiver manipulando Objetos dentro do cliente e este é persistido no EJB, este Objeto deve estar dentro do cliente.

Em uma aplicação distribuída, por exemplo, os componentes web podem rodar em um servidor
diferente do que os EJBs que eles acessam.

Qualquer coisa me avise… t+

[quote=rodrigo_ctba]
Um cliente pode acessar um session ou um entity bean somente com os métodos definidos nas interfaces do bean, se vc. fizer um componente distribuído necessariamente deve ter a Interface do EJB no Cliente.

Desta forma, se vc. estiver manipulando Objetos dentro do cliente e este é persistido no EJB, este Objeto deve estar dentro do cliente.

Em uma aplicação distribuída, por exemplo, os componentes web podem rodar em um servidor
diferente do que os EJBs que eles acessam.

Qualquer coisa me avise… t+[/quote]

entao tenho a interface no client e a interface e implementacao no server o servidor de aplicaçõa que é um jboss 4.2.1 que se encontra no meu ambiente de desenv…ou seja minha aplicação client JSP+struts ta rodando no servidor tomcat e as Regras de negocio no jboss e estou tentando integrar os dois fazendo chamada dos métodos a partir do meu cliente fazendo chamadas remotas .consegui fazer rodar uma miniaplicação mas tipo fazendo select na mão etc…coisa que nao acho bacana pq nao tem persistencia nenhuma assim como quando chegar na parte de insercao e update num vo manipular direto no banco de dados…,mas beleza vo pesquisar mais …se alguem quiser replicar o código pra me ajudar ai…toda ajuda é bem vinda…valeu ai até agora…