• 在weblogic中的JNDI


    创建Initial Context 从服务器端连接到JNDI

    //创建一个Inital Context Context ctx=new InitialContext();

    从任何一个地方连接到JNDI:

    创建Environment对象:

    weblogic.jndi.Enviroment env=new weblogic.jndi.Enviroment();

    填写Environment;

    env.setProviderurl("t3://127.0.0:7001");//WebLogic

    //Server的位置

    env.setSecurityPrincipal("system");

    //安全信息

    env.setSecurityCredentials("PassWord');

    //使用Environment对象创建

    InitialContext() Context ctx=env.getInitialContext();

    创建SubContext 创建Environment对象:

    Context ctx=env.getInitialContext();

    首先必须获得存在的Subcontext或InitialContext

    填写Environment:

    Context subcontext=ctx.createSubcontext("newSubcontext");

    在当前的Context下创建新技术的

    Subcontext Subcontext.rebind("boundObject",object);

    绑定一个对象

    Subcontext.close();

    当结束时经常关闭访问的资源

    Ctx.close();

    其它连接到JNDI的方法 例如,使用‘Constant’Properties名和Hashtable类:

    Hashtable env=new Hashtable();

    Env.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");

    Env.put(Context.PROVIDER_URL,"t3://localhost:7001");

    Env.put(Context.SECURIRY_PRINCIPAL,"system");

     Env.put(Context.SECURIRY_CRRDENTIALS,"PassWord");

    Context ctx=new InitialContext(env);

    另一个例子,使用‘Hardcoded’名和Properties类:

    Properties env=new Properties();

    env.setProperty("java.naming,factory.initial","weblogic.jndi.WLInitialContextFactory");

    env.setProperty("java.naming.provider.url","t3://192.2.56.102:7001");

    env.setProperty("java.naming.securiry.principal","system");

    env.setProperty("java.naming.security.principal","PassWord");

    Context ctx=new InitialContext(env);

    一些JNDI环境属性 环境属性 等同的Environment方法 作用

    "java.naming.factory.initial" Environment.setInitialContextFactory(java.lang.String factoryName) 上下文工厂的类名。

    这是服务提供者给定的类名。

    "java.naming.provider.url" Environment.setProviderUrl(java.lang.String url)

    服务提供者所使用的配置信息。在这里指出网络位置信息。

    "java.naming.securiry.principal" Environment.setSecurityPrincipal)

    使用服务提供者的人员身份标识

    "java.naming.security.credentials" Environment.setSecurityPrincipals(java.lang.Object credentials)

    该身份的密码

    Jndi.properties jndi.properties文件为所有的InitialContexts设置默认的属性

    Jndi.properties文件的搜索次序

    CLASSPATH

    $JAVA_HOME/lib/

    示例jndi.properties;

    Java.naming.factory.initial=weblogic.jndi.WLINitialContextfactory

    Java.naming.provider.url=t3://localhost:7001

    Java.naming.provider.principal=system

    Java.naming.security.credentials=password

    使用这些默认值: Context=new InitialContext();//no params

    从JNDI查找 Lookup()从JNDI树获得对象

    通过lookup()返回的对象必须映射到它们合适的类型

    Import javax.naming.*;

    Try{

    Context ic=new Context();

    Object obj;

    Obj=ic.lookup("javax.transaction.UserTransaction");

     UserTransactio ut=(UserTransaction)obj;

    ut.begin(); ... Ic.close();

    }catch(NamingException e){...}

    远程绑定对象 绑定到远程命名服务的对象必须是序列化的

    访问命名服务时,对象采用复制机制 一个Binding示例

    Public static Context getInitialContext() throws NamingException{

     Environment env=new Environment();

    env.setProviderUrl("t3://localhost:7001");

    env.setSecurityCredentials("weblogic");

    Context context=env.getInitialContext(); return context;

    }

    //获得initial context

    Context ctx=getInitialContext();

     //创建名为Bank的对象

     Bank myBank=new Bank();

    //把对象绑定到JNDI树

     ctx.rebind("theBank",nyBank);

    ctx.close();

     一个Un-Binding示例

    Public static Context getInitialContext() throws NamingExcepiton(){

    Environment env=new Environment();

    env.setProviderUrl("http://localhost:7001);

    env.setSecurityPrincipal("system");

    env.setSecurityCredentials("weblogic");

    Context context=env.getInitialContext();

    return context;

    } //获得initial context

     Context ctx=getInitialContext();

    //解除绑定到"theBank"的对象

    ctx.unbind("theBank");

    ctx.close();

    可能的命名异常 当与JNDI交互时可能发生的例外:

     AuthenticationException //服务器认证信息有错时

     CommunicationException//通信异常

    InvalidNameException//Naming异常

     NameNotFoundException//

    NoInitialContextException//没有连接到JNDI

  • 相关阅读:
    59、web框架以及Django框架
    58、bootstrap
    56、jQuery事件
    55、原生js事件与jQuery
    36-并发编程
    4.20---远程执行命令的CS架构软件
    35-socket 基于套接字的TCP与UDP
    34-网络编程
    33-异常处理
    4.15---元类练习
  • 原文地址:https://www.cnblogs.com/mingforyou/p/2430873.html
Copyright © 2020-2023  润新知