在Java SE中使用JNDI
http://book.csdn.net/bookfiles/371/10037114080.shtmlhttp://www.java3z.com/cwbwebhome/article/article2/21040.html?id=1780
http://www.javaeedev.com/blog/article.jspx?articleId=8a41b5bd128e6daa01128e9214620013
http://docs.sun.com/source/819-1553/jndi.html
http://www.594k.com/java/html/y2007m6/13826/
JNDI全攻略
http://hankun.blogbus.com/logs/1774694.html
http://blog.donews.com/foxgem/archive/2005/05/30/404803.aspx
需要实现Referenceable接口,并实现RetReference方法。
package jndi;import java.io.Serializable;import java.rmi.Remote;import javax.naming.NamingException;import javax.naming.Reference;import javax.naming.Referenceable;import javax.naming.StringRefAddr;public class Person implements Referenceable{private String name;private int age;public Person(String name, int age) {super();this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic Reference getReference() throws NamingException {// TODO Auto-generated method stubReference ref =new Reference(getClass().getName(), SimpleFactory.class.getName(),null);ref.add(new StringRefAddr("name",name));ref.add(new StringRefAddr("age",new Integer(age).toString()));return ref;}}
_____________________________________________________________________
package jndi;import java.util.Hashtable;import javax.naming.Context;import javax.naming.Name;import javax.naming.Reference;import javax.naming.spi.ObjectFactory;public class SimpleFactory implements ObjectFactory {@Overridepublic Object getObjectInstance(Object obj, Name name, Context ctx,Hashtable<?, ?> env) throws Exception {// TODO Auto-generated method stubif(obj instanceof Reference){Reference ref=(Reference)obj; String name1=(String)ref.get("name").getContent(); int age=Integer.parseInt(ref.get("age").getContent().toString()); return new Person(name1,age);}return null;}}
______________________________________________________________________
package jndi;import java.util.Hashtable;import javax.naming.Context;import javax.naming.InitialContext;import javax.naming.NamingException;public class DataBind {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stub Hashtable hs = new Hashtable(); //设置连接LDAP的实现工厂 hs.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.fscontext.RefFSContextFactory"); hs.put(javax.naming.Context.PROVIDER_URL,"file:///c:/"); try { InitialContext ictx = new InitialContext(hs); Person o = (Person)ictx.lookup("ttt/a"); System.out.print(o.getAge()); } catch (NamingException ex) { System.err.println("bind object fail: " + ex.toString()); }}}
页:
[1]