⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 namingentryutil.java

📁 是离开的肌肤了卡机是离开的就富利卡及是了的开发及拉考试及的福利科技阿斯利康的肌肤莱卡及时的离开福建阿斯顿发
💻 JAVA
字号:
package org.mortbay.jetty.plus.naming;import java.util.ArrayList;import java.util.Collections;import java.util.List;import javax.naming.Binding;import javax.naming.Context;import javax.naming.InitialContext;import javax.naming.Name;import javax.naming.NameNotFoundException;import javax.naming.NameParser;import javax.naming.NamingEnumeration;import javax.naming.NamingException;import org.mortbay.log.Log;public class NamingEntryUtil{         /**     * Link a name in a webapp's java:/comp/evn namespace to a pre-existing     * resource. The pre-existing resource can be either in the webapp's     * naming environment, or in the container's naming environment. Webapp's      * environment takes precedence over the server's namespace.     *      * @param asName the name to bind as     * @param mappedName the name from the environment to link to asName     * @param namingEntryType     * @throws NamingException     */    public static boolean bindToENC (Object scope, String asName, String mappedName)    throws NamingException    {          if (asName==null||asName.trim().equals(""))            throw new NamingException ("No name for NamingEntry");        if (mappedName==null || "".equals(mappedName))            mappedName=asName;                NamingEntry entry = lookupNamingEntry (scope, mappedName);        if (entry == null)            return false;                entry.bindToENC(asName);        return true;     }                 /**     * Find a NamingEntry instance.      *      * First the webapp's naming space is searched, and then     * the container's.     *      * @param jndiName name to lookup     * @return     * @throws NamingException     */    public static NamingEntry lookupNamingEntry (Object scope, String jndiName)    throws NamingException    {        NamingEntry entry = null;        try        {                     Name scopeName = getNameForScope(scope);            InitialContext ic = new InitialContext();               NameParser parser = ic.getNameParser("");            Name namingEntryName = makeNamingEntryName(parser, jndiName);              scopeName.addAll(namingEntryName);                       entry =  (NamingEntry)ic.lookup(scopeName);        }        catch (NameNotFoundException ee)        {        }        return entry;    }        /**      * Get all NameEntries of a certain type in the given naming     * environment scope (server-wide names or context-specific names)     *      * @param scope      * @param clazz the type of the entry     * @return     * @throws NamingException     */    public static List lookupNamingEntries (Object scope, Class clazz)    throws NamingException    {         try        {            Context scopeContext = getContextForScope(scope);            Context namingEntriesContext = (Context)scopeContext.lookup(NamingEntry.__contextName);            ArrayList list = new ArrayList();            lookupNamingEntries(list, namingEntriesContext, clazz);            return list;        }        catch (NameNotFoundException e)        {            return Collections.EMPTY_LIST;        }    }            public static Name makeNamingEntryName (NameParser parser, NamingEntry namingEntry)    throws NamingException    {        return makeNamingEntryName(parser, (namingEntry==null?null:namingEntry.getJndiName()));    }        public static Name makeNamingEntryName (NameParser parser, String jndiName)    throws NamingException    {        if (jndiName==null)            return null;                if (parser==null)        {            InitialContext ic = new InitialContext();            parser = ic.getNameParser("");        }                Name name = parser.parse("");        name.add(NamingEntry.__contextName);        name.addAll(parser.parse(jndiName));        return name;    }        public static Name getNameForScope (Object scope)    {        try        {            InitialContext ic = new InitialContext();            NameParser parser = ic.getNameParser("");            Name name = parser.parse("");            if (scope != null)            {                name.add(canonicalizeScope(scope));            }              return name;        }        catch (NamingException e)        {            Log.warn(e);            return null;        }    }    public static Context getContextForScope(Object scope)    throws NamingException    {        InitialContext ic = new InitialContext();        NameParser parser = ic.getNameParser("");        Name name = parser.parse("");        if (scope != null)        {            name.add(canonicalizeScope(scope));        }          return (Context)ic.lookup(name);    }        public static Context getContextForNamingEntries (Object scope)    throws NamingException    {        Context scopeContext = getContextForScope(scope);        return (Context)scopeContext.lookup(NamingEntry.__contextName);    }    /**     * Build up a list of NamingEntry objects that are of a specific type.     *      * @param list     * @param context     * @param clazz     * @return     * @throws NamingException     */    private static List lookupNamingEntries (List list, Context context, Class clazz)    throws NamingException    {        try        {            NamingEnumeration nenum = context.listBindings("");            while (nenum.hasMoreElements())            {                Binding binding = (Binding)nenum.next();                if (binding.getObject() instanceof Context)                    lookupNamingEntries (list, (Context)binding.getObject(), clazz);                else if (clazz.isInstance(binding.getObject()))                  list.add(binding.getObject());            }        }        catch (NameNotFoundException e)        {            Log.debug("No entries of type "+clazz.getName()+" in context="+context);        }        return list;    }    private static String canonicalizeScope(Object scope)    {        if (scope==null)            return "";        String str = scope.toString();        str=str.replace('/', '_').replace(' ', '_');        return str;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -