1 package ejava.examples.jndidemo.ejb; 2 3 import java.io.PrintWriter; 4 import java.io.StringWriter; 5 6 import javax.ejb.SessionContext; 7 import javax.naming.InitialContext; 8 import javax.naming.NamingException; 9 10 import org.slf4j.Logger; 11 import org.slf4j.LoggerFactory; 12 13 import ejava.examples.jndidemo.Scheduler; 14 import ejava.util.jndi.JNDIUtil; 15 16 public abstract class SchedulerBase implements Scheduler { 17 protected Logger log = LoggerFactory.getLogger(getClass()); 18 protected SessionContext ctx; 19 20 protected abstract void setSessionContext(SessionContext ctx); 21 22 public String getJndiProperty(String name) { 23 Object object=null; 24 try { 25 InitialContext jndi = new InitialContext(); 26 object = jndi.lookup(name); 27 } 28 catch (NamingException ex) { 29 object = ex; 30 } 31 log.debug("jndi: " + name + "=" + object); 32 33 return (object != null) ? object.toString() : null; 34 } 35 36 public String getCtxProperty(String name) { 37 Object object=null; 38 try { 39 object = ctx.lookup(name); 40 } 41 catch (RuntimeException ex) { 42 object = ex; 43 } 44 log.debug("enc: " + name + "=" + object); 45 return (object != null) ? object.toString() : null; 46 } 47 48 @Override 49 public String getEnv() { 50 try { 51 String result=new JNDIUtil().dump(new InitialContext(), "java:comp/env"); 52 log.debug("java:comp/env=" + result); 53 return result; 54 } catch (NamingException ex) { 55 StringWriter sw = new StringWriter(); 56 PrintWriter pw = new PrintWriter(sw); 57 ex.printStackTrace(pw); 58 log.error(pw.toString()); 59 return pw.toString(); 60 } 61 } 62 }