Galera, boa noite
Sou novo com EJB, e estou quebrando a cabeça com o seguinte cenário:
Minha interface
@Remote
public interface BroadcastFacadeInterface {
public Broadcast getBroadcastById(Long id);
public Collection<Broadcast> getAllBroadcast();
public void saveBroadcast(Broadcast broadcast);
}
agora a implementação:
@Stateless
@Remote({BroadcastFacadeInterface.class})
public class BroadcastFacade implements BroadcastFacadeInterface {
@EJB
private InterfaceBroadcastDAO broadcastDAO;
@Override
public Broadcast getBroadcastById(Long id) {
Broadcast broadcast = broadcastDAO.getBroadcastById(id);
Hibernate.initialize(broadcast);
return broadcast;
}
@Override
public void saveBroadcast(Broadcast broadcast) {
broadcastDAO.save(broadcast);
}
@Override
public Collection<Broadcast> getAllBroadcast() {
return broadcastDAO.listAllBroadcast();
}
}
e aqui o método para recuperar:
public BroadcastFacadeInterface getBroadcastFacade() {
BroadcastFacadeInterface objRef = null;
try {
InitialContext context = new InitialContext();
objRef = (BroadcastFacadeInterface) context.lookup("BroadcastFacade/remote");
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return objRef;
}
Ao fazer a chamada :
getBroadcastFacade().saveBroadcast(broadcast);
recebo o stacktrace:
21:04:20,063 ERROR [[Send]] Servlet.service() for servlet Send threw exception
java.lang.ClassCastException: [b]$Proxy82 cannot be cast to pt.ptinovacao.newtorpedeira.ejb.facade.BroadcastFacadeInterface[/b]
at pt.ptinovacao.newtorpedeira.servlet.SendServlet.getBroadcastFacade(SendServlet.java:64)
at pt.ptinovacao.newtorpedeira.servlet.SendServlet.service(SendServlet.java:47)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
at java.lang.Thread.run(Thread.java:619)
Estou utilizando o container JBoss e veja que no JNDI o $Proxy82 implementa a interface correspondente =S
+- BroadcastFacade (class: org.jnp.interfaces.NamingContext)
| [b]+- remote (proxy: $Proxy82 implements interface pt.ptinovacao.newtorpedeira.ejb.facade.BroadcastFacadeInterface,interface org.jboss.ejb3.JBossProxy)[/b]
Não sei mais o que fazer, se alguém puder ajudar , ficarei muito grato!
Um abraço.