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

📄 axisengine.java

📁 Java有关XML编程需要用到axis 的源代码 把里面bin下的包导入相应的Java工程 进行使用
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* * Copyright 2001-2004 The Apache Software Foundation. *  * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at *  *      http://www.apache.org/licenses/LICENSE-2.0 *  * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.apache.axis;import org.apache.axis.components.logger.LogFactory;import org.apache.axis.encoding.TypeMappingRegistry;import org.apache.axis.encoding.TypeMappingImpl;import org.apache.axis.handlers.BasicHandler;import org.apache.axis.handlers.soap.SOAPService;import org.apache.axis.session.Session;import org.apache.axis.session.SimpleSession;import org.apache.axis.utils.JavaUtils;import org.apache.axis.utils.Messages;import org.apache.axis.utils.cache.ClassCache;import org.apache.commons.logging.Log;import javax.xml.namespace.QName;import javax.xml.rpc.server.ServiceLifecycle;import java.util.ArrayList;import java.util.Enumeration;import java.util.Hashtable;/** * An <code>AxisEngine</code> is the base class for AxisClient and * AxisServer.  Handles common functionality like dealing with the * handler/service registries and loading properties. * * @author Glen Daniels (gdaniels@apache.org) * @author Glyn Normington (glyn@apache.org) */public abstract class AxisEngine extends BasicHandler{    /**     * The <code>Log</code> for all message logging.     */    protected static Log log =        LogFactory.getLog(AxisEngine.class.getName());    // Engine property names    public static final String PROP_XML_DECL = "sendXMLDeclaration";    public static final String PROP_DEBUG_LEVEL = "debugLevel";    public static final String PROP_DEBUG_FILE = "debugFile";    public static final String PROP_DOMULTIREFS = "sendMultiRefs";    public static final String PROP_DISABLE_PRETTY_XML = "disablePrettyXML";    public static final String PROP_ENABLE_NAMESPACE_PREFIX_OPTIMIZATION = "enableNamespacePrefixOptimization";    public static final String PROP_PASSWORD = "adminPassword";    public static final String PROP_SYNC_CONFIG = "syncConfiguration";    public static final String PROP_SEND_XSI = "sendXsiTypes";    public static final String PROP_ATTACHMENT_DIR = "attachments.Directory";    public static final String PROP_ATTACHMENT_IMPLEMENTATION  = "attachments.implementation" ;    public static final String PROP_ATTACHMENT_CLEANUP = "attachment.DirectoryCleanUp";    public static final String PROP_DEFAULT_CONFIG_CLASS = "axis.engineConfigClass";    public static final String PROP_SOAP_VERSION = "defaultSOAPVersion";    public static final String PROP_SOAP_ALLOWED_VERSION = "singleSOAPVersion";    public static final String PROP_TWOD_ARRAY_ENCODING = "enable2DArrayEncoding";    public static final String PROP_XML_ENCODING = "axis.xmlEncoding";    public static final String PROP_XML_REUSE_SAX_PARSERS = "axis.xml.reuseParsers";    public static final String PROP_BYTE_BUFFER_BACKING = "axis.byteBuffer.backing";    public static final String PROP_BYTE_BUFFER_CACHE_INCREMENT = "axis.byteBuffer.cacheIncrement";    public static final String PROP_BYTE_BUFFER_RESIDENT_MAX_SIZE = "axis.byteBuffer.residentMaxSize";    public static final String PROP_BYTE_BUFFER_WORK_BUFFER_SIZE = "axis.byteBuffer.workBufferSize";    public static final String PROP_EMIT_ALL_TYPES = "emitAllTypesInWSDL";    /**     * Set this property to 'true' when you want Axis to avoid soap encoded     * types to work around a .NET problem where it wont accept soap encoded     * types for a (soap encoded!) array.     */    public static final String PROP_DOTNET_SOAPENC_FIX = "dotNetSoapEncFix";    /** Compliance with WS-I Basic Profile. */    public static final String PROP_BP10_COMPLIANCE = "ws-i.bp10Compliance";    public static final String DEFAULT_ATTACHMENT_IMPL="org.apache.axis.attachments.AttachmentsImpl";    public static final String ENV_ATTACHMENT_DIR = "axis.attachments.Directory";    public static final String ENV_SERVLET_REALPATH = "servlet.realpath";    public static final String ENV_SERVLET_CONTEXT = "servletContext";    // Default admin. password    private static final String DEFAULT_ADMIN_PASSWORD = "admin";    /** Our go-to guy for configuration... */    protected EngineConfiguration config;    /** Has the user changed the password yet? True if they have. */    protected boolean _hasSafePassword = false;    /**     * Should we save the engine config each time we modify it? True if we     * should.     */    protected boolean shouldSaveConfig = false;    /** Java class cache. */    protected transient ClassCache classCache = new ClassCache();    /**     * This engine's Session.  This Session supports "application scope"     * in the Apache SOAP sense... if you have a service with "application     * scope", have it store things in this Session.     */    private Session session = new SimpleSession();    /**     * What actor URIs hold for the entire engine? Find them here.     */    private ArrayList actorURIs = new ArrayList();    /**     * Thread local storage used for locating the active message context.     * This information is only valid for the lifetime of this request.     */    private static ThreadLocal currentMessageContext = new ThreadLocal();    /**     * Set the active message context.     *     * @param mc - the new active message context.     */    protected static void setCurrentMessageContext(MessageContext mc) {        currentMessageContext.set(mc);    }    /**     * Get the active message context.     *     * @return the current active message context     */    public static MessageContext getCurrentMessageContext() {        return (MessageContext) currentMessageContext.get();    }    /**     * Construct an AxisEngine using the specified engine configuration.     *     * @param config the EngineConfiguration for this engine     */    public AxisEngine(EngineConfiguration config)    {        this.config = config;        init();    }    /**     * Initialize the engine. Multiple calls will (may?) return the engine to     * the intialized state.     */    public void init() {        if (log.isDebugEnabled()) {            log.debug("Enter: AxisEngine::init");        }        // The SOAP/XSD stuff is in the default TypeMapping of the TypeMappingRegistry.        //getTypeMappingRegistry().setParent(SOAPTypeMappingRegistry.getSingletonDelegate());        try {            config.configureEngine(this);        } catch (Exception e) {            throw new InternalException(e);        }        /*Set the default attachment implementation */        setOptionDefault(PROP_ATTACHMENT_IMPLEMENTATION,                         AxisProperties.getProperty("axis." + PROP_ATTACHMENT_IMPLEMENTATION  ));        setOptionDefault(PROP_ATTACHMENT_IMPLEMENTATION, DEFAULT_ATTACHMENT_IMPL);        // Check for the property "dotnetsoapencfix" which will turn        // off soap encoded types to work around a bug in .NET where        // it wont accept soap encoded array types.        final Object dotnet = getOption(PROP_DOTNET_SOAPENC_FIX);        if (JavaUtils.isTrue(dotnet)) {            // This is a static property of the type mapping            // that will ignore SOAPENC types when looking up            // QNames of java types.            TypeMappingImpl.dotnet_soapenc_bugfix = true;        }        if (log.isDebugEnabled()) {            log.debug("Exit: AxisEngine::init");        }    }    /**     * Cleanup routine removes application scoped objects.     *     * There is a small risk of this being called more than once     * so the cleanup should be designed to resist that event.     */    public void cleanup() {        super.cleanup();        // Let any application-scoped service objects know that we're going        // away...        Enumeration keys = session.getKeys();        if (keys != null) {            while (keys.hasMoreElements()) {                String key = (String)keys.nextElement();                Object obj = session.get(key);                if (obj != null && obj instanceof ServiceLifecycle) {                    ((ServiceLifecycle)obj).destroy();                }                session.remove(key);            }        }    }    /** Write out our engine configuration.     */    public void saveConfiguration()    {        if (!shouldSaveConfig)            return;        try {            config.writeEngineConfig(this);        } catch (Exception e) {            log.error(Messages.getMessage("saveConfigFail00"), e);        }    }    /**     * Get the <code>EngineConfiguration</code> used throughout this     * <code>AxisEngine</code> instance.     *     * @return the engine configuration instance     */    public EngineConfiguration getConfig() {        return config;    }    /**     * Discover if this <code>AxisEngine</code> has a safe password.     *     * @return  true if it is safe, false otherwise     */    public boolean hasSafePassword()    {        return _hasSafePassword;    }    /**     * Set the administration password.     *     * @param pw  the literal value of the password as a <code>String</code>     */    public void setAdminPassword(String pw)

⌨️ 快捷键说明

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