to ficando loco com esse erro já, alguém ja recebeu um desses?
ERROR [STDERR] br.unisc.ead.delegate.BusinessDelegateException: EJBException:; nested exception is:
javax.ejb.EJBException: Invalid invocation, check your deployment packaging, method=public abstract br.unisc.ead.ejb.Facade br.unisc.ead.ejb.FacadeHome.create() throws javax.ejb.CreateException,java.rmi.RemoteException
19:00:05,587 ERROR [STDERR] at br.unisc.ead.delegate.BusinessDelegate.<init>(BusinessDelegate.java:44)
ó… eu tenho uma classe de Business Delegate, q procura por um Facade usando um ServiceLocator:
construtor do BusinessDelegate
public BusinessDelegate() throws BusinessDelegateException
{
try {
FacadeHome facadeHome = ( FacadeHome )
ServiceLocator.getInstance().
getRemoteHome( FacadeHome.JNDI_NAME, FacadeHome.FACADE_CLASS );
facade = facadeHome.create();
} catch ( ServiceLocatorException sl ) {
sl.printStackTrace();
throw new BusinessDelegateException( sl.getMessage() );
} catch ( CreateException c ) {
c.printStackTrace();
throw new BusinessDelegateException( c.getMessage() );
} catch ( RemoteException r ) {
r.printStackTrace();
throw new BusinessDelegateException( r.getMessage() );
} // a linha q o console diz q tem erro é essa
}
método getRemoteHome() do ServiceLocator.java
public EJBHome getRemoteHome( String jndiHomeName, Class className ) throws ServiceLocatorException
{
EJBHome home = null;
try {
if ( cache.containsKey( jndiHomeName ) )
home = (EJBHome) cache.get(jndiHomeName);
else {
Object objref = ic.lookup( jndiHomeName );
Object obj = PortableRemoteObject.narrow( objref, className );
home = ( EJBHome ) obj;
cache.put(jndiHomeName, home);
}
} catch ( NamingException ne ) {
throw new ServiceLocatorException( ne );
} catch ( Exception e ) {
throw new ServiceLocatorException(e);
}
return home;
}
interface Home do Facade
package br.unisc.ead.ejb;
import javax.ejb.EJBHome;
import javax.ejb.CreateException;
import java.rmi.RemoteException;
public interface FacadeHome extends EJBHome {
public static final String JNDI_NAME = "ejb/FacadeBean";
public static final Class FACADE_CLASS = br.unisc.ead.ejb.FacadeHome.class;
public Facade create() throws RemoteException, CreateException;
}
por fim o método doStuff() pertencente a interface de negocios do FacadeBean, q eu chamo via BusinessDelegate, em um Servlet como cliente:
// isso aqui ta dentro de doGet()
try {
BusinessDelegate b = new BusinessDelegate();
out.println( "<html>" );
out.println( b.doStuff() );
out.println( "</html>" );
} catch ( BusinessDelegateException e ) {
e.printStackTrace();
}
…mas o erro tá logo qnd chamo o create() em BusinessDelegate.java, q é aquele lá em cima… to ficando louco com isso já, faço o deploy, o código nao apresenta nenhum erro, mas, qnd chamo o servlet, da esse erro no console do JBoss… HELP!!!