42 lines
1.4 KiB
Java
42 lines
1.4 KiB
Java
Using EJB meta data
|
|
|
|
|
|
|
|
package com.ack.j2ee.ejb.simple;
|
|
|
|
import javax.ejb.EJBHome;
|
|
import javax.ejb.EJBMetaData;
|
|
import javax.naming.InitialContext;
|
|
import javax.rmi.PortableRemoteObject;
|
|
|
|
import com.ack.j2ee.ejb.session.InformerHome;
|
|
|
|
public class UsingEJBMetaData {
|
|
public static void main( String[] args ) throws Exception {
|
|
// get handle into the EJB naming directory
|
|
InitialContext ctx = new InitialContext();
|
|
|
|
// get hold of the object you want by name
|
|
Object ejbObject = ctx.lookup( "ejb/informer" );
|
|
|
|
// narrow retrieved object into specific expected type
|
|
InformerHome home = (InformerHome) PortableRemoteObject.
|
|
narrow( ejbObject, InformerHome.class );
|
|
|
|
// get meta data regarding the ejb off its home interface
|
|
EJBMetaData md = home.getEJBMetaData();
|
|
|
|
// get the ejb home
|
|
EJBHome homeInterface = md.getEJBHome();
|
|
System.out.println( "is stateless session: " + md.isStatelessSession() );
|
|
System.out.println( "is session bean: " + md.isSession() );
|
|
System.out.println( md.getRemoteInterfaceClass().getName() );
|
|
System.out.println( md.getHomeInterfaceClass().getName() );
|
|
if( md.isSession() == false ) {
|
|
// must be an entity bean, because message-driven beans
|
|
// don't have home interfaces, hence no meta-data
|
|
System.out.println( md.getPrimaryKeyClass().getName() );
|
|
}
|
|
}
|
|
}
|