当前位置: 首页>>代码示例>>Java>>正文


Java InstanceManager.newInstance方法代码示例

本文整理汇总了Java中org.apache.tomcat.InstanceManager.newInstance方法的典型用法代码示例。如果您正苦于以下问题:Java InstanceManager.newInstance方法的具体用法?Java InstanceManager.newInstance怎么用?Java InstanceManager.newInstance使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.tomcat.InstanceManager的用法示例。


在下文中一共展示了InstanceManager.newInstance方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: getServlet

import org.apache.tomcat.InstanceManager; //导入方法依赖的package包/类
public Servlet getServlet() throws ServletException {
    // DCL on 'reload' requires that 'reload' be volatile
    // (this also forces a read memory barrier, ensuring the
    // new servlet object is read consistently)
    if (reload) {
        synchronized (this) {
            // Synchronizing on jsw enables simultaneous loading
            // of different pages, but not the same page.
            if (reload) {
                // This is to maintain the original protocol.
                destroy();

                final Servlet servlet;

                try {
                    InstanceManager instanceManager = InstanceManagerFactory.getInstanceManager(config);
                    servlet = (Servlet) instanceManager.newInstance(ctxt.getFQCN(), ctxt.getJspLoader());
                } catch (Exception e) {
                    Throwable t = ExceptionUtils
                            .unwrapInvocationTargetException(e);
                    ExceptionUtils.handleThrowable(t);
                    throw new JasperException(t);
                }

                servlet.init(config);

                if (!firstTime) {
                    ctxt.getRuntimeContext().incrementJspReloadCount();
                }

                theServlet = servlet;
                reload = false;
                // Volatile 'reload' forces in order write of 'theServlet' and new servlet object
            }
        }
    }
    return theServlet;
}
 
开发者ID:nkasvosve,项目名称:beyondj,代码行数:39,代码来源:JspServletWrapper.java

示例2: getServlet

import org.apache.tomcat.InstanceManager; //导入方法依赖的package包/类
public Servlet getServlet() throws ServletException {
    // DCL on 'reload' requires that 'reload' be volatile
    // (this also forces a read memory barrier, ensuring the 
    // new servlet object is read consistently)
    if (reload) {
        synchronized (this) {
            // Synchronizing on jsw enables simultaneous loading
            // of different pages, but not the same page.
            if (reload) {
                // This is to maintain the original protocol.
                destroy();
                
                final Servlet servlet;

                try {
                    InstanceManager instanceManager = InstanceManagerFactory.getInstanceManager(config);
                    servlet = (Servlet) instanceManager.newInstance(ctxt.getFQCN(), ctxt.getJspLoader());
                } catch (Exception e) {
                    Throwable t = ExceptionUtils
                            .unwrapInvocationTargetException(e);
                    ExceptionUtils.handleThrowable(t);
                    throw new JasperException(t);
                }
                
                servlet.init(config);

                if (!firstTime) {
                    ctxt.getRuntimeContext().incrementJspReloadCount();
                }

                theServlet = servlet;
                reload = false;
                // Volatile 'reload' forces in order write of 'theServlet' and new servlet object
            }
        }    
    }
    return theServlet;
}
 
开发者ID:deathspeeder,项目名称:class-guard,代码行数:39,代码来源:JspServletWrapper.java

示例3: WsSession

import org.apache.tomcat.InstanceManager; //导入方法依赖的package包/类
/**
 * Creates a new WebSocket session for communication between the two
 * provided end points. The result of {@link Thread#getContextClassLoader()}
 * at the time this constructor is called will be used when calling
 * {@link Endpoint#onClose(Session, CloseReason)}.
 *
 * @param localEndpoint
 * @param wsRemoteEndpoint
 * @param negotiatedExtensions
 * @throws DeploymentException
 */
public WsSession(Endpoint localEndpoint,
        WsRemoteEndpointImplBase wsRemoteEndpoint,
        WsWebSocketContainer wsWebSocketContainer,
        URI requestUri, Map<String,List<String>> requestParameterMap,
        String queryString, Principal userPrincipal, String httpSessionId,
        List<Extension> negotiatedExtensions, String subProtocol, Map<String,String> pathParameters,
        boolean secure, EndpointConfig endpointConfig) throws DeploymentException {
    this.localEndpoint = localEndpoint;
    this.wsRemoteEndpoint = wsRemoteEndpoint;
    this.wsRemoteEndpoint.setSession(this);
    this.remoteEndpointAsync = new WsRemoteEndpointAsync(wsRemoteEndpoint);
    this.remoteEndpointBasic = new WsRemoteEndpointBasic(wsRemoteEndpoint);
    this.webSocketContainer = wsWebSocketContainer;
    applicationClassLoader = Thread.currentThread().getContextClassLoader();
    wsRemoteEndpoint.setSendTimeout(
            wsWebSocketContainer.getDefaultAsyncSendTimeout());
    this.maxBinaryMessageBufferSize =
            webSocketContainer.getDefaultMaxBinaryMessageBufferSize();
    this.maxTextMessageBufferSize =
            webSocketContainer.getDefaultMaxTextMessageBufferSize();
    this.maxIdleTimeout =
            webSocketContainer.getDefaultMaxSessionIdleTimeout();
    this.requestUri = requestUri;
    if (requestParameterMap == null) {
        this.requestParameterMap = Collections.emptyMap();
    } else {
        this.requestParameterMap = requestParameterMap;
    }
    this.queryString = queryString;
    this.userPrincipal = userPrincipal;
    this.httpSessionId = httpSessionId;
    this.negotiatedExtensions = negotiatedExtensions;
    if (subProtocol == null) {
        this.subProtocol = "";
    } else {
        this.subProtocol = subProtocol;
    }
    this.pathParameters = pathParameters;
    this.secure = secure;
    this.wsRemoteEndpoint.setEncoders(endpointConfig);
    this.endpointConfig = endpointConfig;

    this.userProperties.putAll(endpointConfig.getUserProperties());
    this.id = Long.toHexString(ids.getAndIncrement());

    InstanceManager instanceManager = webSocketContainer.getInstanceManager();
    if (instanceManager != null) {
        try {
            instanceManager.newInstance(localEndpoint);
        } catch (Exception e) {
            throw new DeploymentException(sm.getString("wsSession.instanceNew"), e);
        }
    }

    if (log.isDebugEnabled()) {
        log.debug(sm.getString("wsSession.created", id));
    }
}
 
开发者ID:liaokailin,项目名称:tomcat7,代码行数:70,代码来源:WsSession.java

示例4: WsSession

import org.apache.tomcat.InstanceManager; //导入方法依赖的package包/类
/**
 * Creates a new WebSocket session for communication between the two
 * provided end points. The result of {@link Thread#getContextClassLoader()}
 * at the time this constructor is called will be used when calling
 * {@link Endpoint#onClose(Session, CloseReason)}.
 *
 * @param localEndpoint
 * @param wsRemoteEndpoint
 * @param negotiatedExtensions
 * @throws DeploymentException
 */
public WsSession(Endpoint localEndpoint, WsRemoteEndpointImplBase wsRemoteEndpoint,
		WsWebSocketContainer wsWebSocketContainer, URI requestUri, Map<String, List<String>> requestParameterMap,
		String queryString, Principal userPrincipal, String httpSessionId, List<Extension> negotiatedExtensions,
		String subProtocol, Map<String, String> pathParameters, boolean secure, EndpointConfig endpointConfig)
		throws DeploymentException {
	this.localEndpoint = localEndpoint;
	this.wsRemoteEndpoint = wsRemoteEndpoint;
	this.wsRemoteEndpoint.setSession(this);
	this.remoteEndpointAsync = new WsRemoteEndpointAsync(wsRemoteEndpoint);
	this.remoteEndpointBasic = new WsRemoteEndpointBasic(wsRemoteEndpoint);
	this.webSocketContainer = wsWebSocketContainer;
	applicationClassLoader = Thread.currentThread().getContextClassLoader();
	wsRemoteEndpoint.setSendTimeout(wsWebSocketContainer.getDefaultAsyncSendTimeout());
	this.maxBinaryMessageBufferSize = webSocketContainer.getDefaultMaxBinaryMessageBufferSize();
	this.maxTextMessageBufferSize = webSocketContainer.getDefaultMaxTextMessageBufferSize();
	this.maxIdleTimeout = webSocketContainer.getDefaultMaxSessionIdleTimeout();
	this.requestUri = requestUri;
	if (requestParameterMap == null) {
		this.requestParameterMap = Collections.emptyMap();
	} else {
		this.requestParameterMap = requestParameterMap;
	}
	this.queryString = queryString;
	this.userPrincipal = userPrincipal;
	this.httpSessionId = httpSessionId;
	this.negotiatedExtensions = negotiatedExtensions;
	if (subProtocol == null) {
		this.subProtocol = "";
	} else {
		this.subProtocol = subProtocol;
	}
	this.pathParameters = pathParameters;
	this.secure = secure;
	this.wsRemoteEndpoint.setEncoders(endpointConfig);
	this.endpointConfig = endpointConfig;

	this.userProperties.putAll(endpointConfig.getUserProperties());
	this.id = Long.toHexString(ids.getAndIncrement());

	InstanceManager instanceManager = webSocketContainer.getInstanceManager();
	if (instanceManager != null) {
		try {
			instanceManager.newInstance(localEndpoint);
		} catch (Exception e) {
			throw new DeploymentException(sm.getString("wsSession.instanceNew"), e);
		}
	}

	if (log.isDebugEnabled()) {
		log.debug(sm.getString("wsSession.created", id));
	}
}
 
开发者ID:how2j,项目名称:lazycat,代码行数:64,代码来源:WsSession.java


注:本文中的org.apache.tomcat.InstanceManager.newInstance方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。