You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

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() );
}
}
}