在过去的几周里,我一直在寻找在两个上下文/战争文件之间共享对象的解决方案.有很多种方法可以做,其中一种是JNDI.
我对Tomcat中使用的JNDI不太熟悉,所以想澄清几个问题:
基本上我有一个对象的实例,它可以为多个上下文/应用程序提供以下服务
每个应用程序将在处理任何请求之前调用此对象以验证用户.我不明白的是,如果它存储在JNDI上,该对象将如何工作.我已经看到了一些如何在Tomcat中使用JNDI的示例,但99%的示例显示了如何配置JDBC数据源.
Run Code Online (Sandbox Code Playgroud)<Resource name="jdbc/db1" auth="Container" type="oracle.jdbc.pool.OracleDataSource" driverClassName="oracle.jdbc.driver.OracleDriver" factory="oracle.jdbc.pool.OracleDataSourceFactory" url="jdbc:oracle:thin:@oracle.microdeveloper.com:1521:db1" user="scott" password="tiger" maxActive="20" maxIdle="10" maxWait="-1">
在我的情况下我将如何做类似的事情,最重要的是,如何在将对象放入JNDI树之前初始化该对象.一旦它在JNDI树上,它是如何更新的?
我想我想要的是在Tomcat中使用JNDI的简单示例,但不是数据库连接,而是服务提供者类型对象.
我一直在阅读本教程http://docs.oracle.com/javase/tutorial/jndi/ops/bind.html,但它更侧重于LDAP命名目录并没有真正帮助.
好的,我确实在上面列出的教程中找到了一个示例,它显示了如何将对象"绑定"到JNDI树中.
class SerObj {
public static void main(String[] args) {
// Set up environment for creating initial context
Hashtable<String, Object> env = new Hashtable<String, Object>(11);
env.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://localhost:389/o=JNDITutorial");
try {
// Create the initial context
Context ctx = new InitialContext(env);
// Create object to be bound
Button b …Run Code Online (Sandbox Code Playgroud)