现在我想知道的是,如果不启动web服务器,如何能够指定jndi的服务载入一个特定的配置文件来完成初始化。从而,可以象和有web服务器时一样使用jndi的功能。
也就是说,如何找到jndi服务提供者载入web.xml文件完成初始化的那段代码。
8 个解决方案
#1
用ldap服务器
只知道这样
不好意思
帮你顶一下
只知道这样
不好意思
帮你顶一下
#2
也不知道具体怎么做,但是java2里面有jndi的API,我使用ldap时就用到过,我想原理都是差不多的了
#3
上面说的ldap服务
因为webapp 必然要使用ldap支持的。
关于webapp server 还比较复杂的我不懂的,你可以自己看看jdni
http://java.sun.com/products/jndi/tutorial/TOC.html#OBJECTS
因为webapp 必然要使用ldap支持的。
关于webapp server 还比较复杂的我不懂的,你可以自己看看jdni
http://java.sun.com/products/jndi/tutorial/TOC.html#OBJECTS
#4
http://java.sun.com/products/jndi/tutorial/TOC.html#OBJECTS
很好的文章。。。看看去。。。
很好的文章。。。看看去。。。
#5
多谢大家的回复。现在我已经有点思路了。我准备找找Tomcat的代码,看看它是怎么做的。
#6
帮你顶
#7
一样的啊,只要指定 INITIAL_CONTEXT_FACTORY,PROVIDER_URL,
再提供一个ldap服务器,就可以访问了
prop.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
prop.put(Context.PROVIDER_URL,"ldap://localhost:389");
再提供一个ldap服务器,就可以访问了
prop.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
prop.put(Context.PROVIDER_URL,"ldap://localhost:389");
#8
我知道答案了!其实很简单,用Context中提供的功能就可以完成。主要是大家用的都是查找的功能,没有想过初始化的功能。
我找这个的主要原因是,我们写的程序要用main函数进行调试的,相当于javaBean。
我用的是Tomcat的包,不用另外找一个服务器了。下面是代码:
public void buildContext() {
try {
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,
"org.apache.naming.java.javaURLContextFactory");
// "weblogic.jndi.WLInitialContextFactory");
// env.put(Context.PROVIDER_URL,
// "t3://weblogicServer:7001");
env.put(Context.URL_PKG_PREFIXES,
"org.apache.naming");
Context ctx = new InitialContext(env);
Context javaCtx = ctx.createSubcontext("java:comp");
javaCtx = javaCtx.createSubcontext("env");
// bind a string object to java:comp/env/num
javaCtx = (Context)ctx.lookup("java:comp/env");
if( javaCtx == null ) {
System.out.println("fail to access url context!");
}
javaCtx.bind("num", "10");
} catch (Exception ex) {
ex.printStackTrace();
}
}
我找这个的主要原因是,我们写的程序要用main函数进行调试的,相当于javaBean。
我用的是Tomcat的包,不用另外找一个服务器了。下面是代码:
public void buildContext() {
try {
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,
"org.apache.naming.java.javaURLContextFactory");
// "weblogic.jndi.WLInitialContextFactory");
// env.put(Context.PROVIDER_URL,
// "t3://weblogicServer:7001");
env.put(Context.URL_PKG_PREFIXES,
"org.apache.naming");
Context ctx = new InitialContext(env);
Context javaCtx = ctx.createSubcontext("java:comp");
javaCtx = javaCtx.createSubcontext("env");
// bind a string object to java:comp/env/num
javaCtx = (Context)ctx.lookup("java:comp/env");
if( javaCtx == null ) {
System.out.println("fail to access url context!");
}
javaCtx.bind("num", "10");
} catch (Exception ex) {
ex.printStackTrace();
}
}
#1
用ldap服务器
只知道这样
不好意思
帮你顶一下
只知道这样
不好意思
帮你顶一下
#2
也不知道具体怎么做,但是java2里面有jndi的API,我使用ldap时就用到过,我想原理都是差不多的了
#3
上面说的ldap服务
因为webapp 必然要使用ldap支持的。
关于webapp server 还比较复杂的我不懂的,你可以自己看看jdni
http://java.sun.com/products/jndi/tutorial/TOC.html#OBJECTS
因为webapp 必然要使用ldap支持的。
关于webapp server 还比较复杂的我不懂的,你可以自己看看jdni
http://java.sun.com/products/jndi/tutorial/TOC.html#OBJECTS
#4
http://java.sun.com/products/jndi/tutorial/TOC.html#OBJECTS
很好的文章。。。看看去。。。
很好的文章。。。看看去。。。
#5
多谢大家的回复。现在我已经有点思路了。我准备找找Tomcat的代码,看看它是怎么做的。
#6
帮你顶
#7
一样的啊,只要指定 INITIAL_CONTEXT_FACTORY,PROVIDER_URL,
再提供一个ldap服务器,就可以访问了
prop.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
prop.put(Context.PROVIDER_URL,"ldap://localhost:389");
再提供一个ldap服务器,就可以访问了
prop.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
prop.put(Context.PROVIDER_URL,"ldap://localhost:389");
#8
我知道答案了!其实很简单,用Context中提供的功能就可以完成。主要是大家用的都是查找的功能,没有想过初始化的功能。
我找这个的主要原因是,我们写的程序要用main函数进行调试的,相当于javaBean。
我用的是Tomcat的包,不用另外找一个服务器了。下面是代码:
public void buildContext() {
try {
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,
"org.apache.naming.java.javaURLContextFactory");
// "weblogic.jndi.WLInitialContextFactory");
// env.put(Context.PROVIDER_URL,
// "t3://weblogicServer:7001");
env.put(Context.URL_PKG_PREFIXES,
"org.apache.naming");
Context ctx = new InitialContext(env);
Context javaCtx = ctx.createSubcontext("java:comp");
javaCtx = javaCtx.createSubcontext("env");
// bind a string object to java:comp/env/num
javaCtx = (Context)ctx.lookup("java:comp/env");
if( javaCtx == null ) {
System.out.println("fail to access url context!");
}
javaCtx.bind("num", "10");
} catch (Exception ex) {
ex.printStackTrace();
}
}
我找这个的主要原因是,我们写的程序要用main函数进行调试的,相当于javaBean。
我用的是Tomcat的包,不用另外找一个服务器了。下面是代码:
public void buildContext() {
try {
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,
"org.apache.naming.java.javaURLContextFactory");
// "weblogic.jndi.WLInitialContextFactory");
// env.put(Context.PROVIDER_URL,
// "t3://weblogicServer:7001");
env.put(Context.URL_PKG_PREFIXES,
"org.apache.naming");
Context ctx = new InitialContext(env);
Context javaCtx = ctx.createSubcontext("java:comp");
javaCtx = javaCtx.createSubcontext("env");
// bind a string object to java:comp/env/num
javaCtx = (Context)ctx.lookup("java:comp/env");
if( javaCtx == null ) {
System.out.println("fail to access url context!");
}
javaCtx.bind("num", "10");
} catch (Exception ex) {
ex.printStackTrace();
}
}