相关疑难解决方法(0)

使用JNDI在Tomcat中共享servlet会话对象和数据

在过去的几周里,我一直在寻找在两个上下文/战争文件之间共享对象的解决方案.有很多种方法可以做,其中一种是JNDI.

我对Tomcat中使用的JNDI不太熟悉,所以想澄清几个问题:

基本上我有一个对象的实例,它可以为多个上下文/应用程序提供以下服务

  • 检查用户是否已登录
  • 检查用户的会话是否有效
  • 登录用户 - 包括记录登录详细信息
  • 注销用户 - 删除会话

每个应用程序将在处理任何请求之前调用此对象以验证用户.我不明白的是,如果它存储在JNDI上,该对象将如何工作.我已经看到了一些如何在Tomcat中使用JNDI的示例,但99%的示例显示了如何配置JDBC数据源.

  • 如何在JNDI中初始化对象.例如,Tomcat文档中的以下配置显示了JDBC的配置
<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">
Run Code Online (Sandbox Code Playgroud)

在我的情况下我将如何做类似的事情,最重要的是,如何在将对象放入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)

java oop tomcat servlets jndi

5
推荐指数
1
解决办法
2546
查看次数

标签 统计

java ×1

jndi ×1

oop ×1

servlets ×1

tomcat ×1