📄 wsddundeployment.java
字号:
/* * 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.deployment.wsdd;import org.apache.axis.ConfigurationException;import org.apache.axis.encoding.SerializationContext;import org.apache.axis.handlers.soap.SOAPService;import org.apache.axis.MessageContext;import org.apache.axis.utils.Messages;import org.w3c.dom.Element;import org.xml.sax.helpers.AttributesImpl;import javax.xml.namespace.QName;import java.io.IOException;import java.util.Iterator;import java.util.Vector;/** * WSDD deployment element * * @author James Snell */public class WSDDUndeployment extends WSDDElement implements WSDDTypeMappingContainer{ private Vector handlers = new Vector(); private Vector chains = new Vector(); private Vector services = new Vector(); private Vector transports = new Vector(); private Vector typeMappings = new Vector(); public void addHandler(QName handler) { handlers.add(handler); } public void addChain(QName chain) { chains.add(chain); } public void addTransport(QName transport) { transports.add(transport); } public void addService(QName service) { services.add(service); } public void deployTypeMapping(WSDDTypeMapping typeMapping) throws WSDDException { typeMappings.add(typeMapping); } /** * Default constructor */ public WSDDUndeployment() { } private QName getQName(Element el) throws WSDDException { String attr = el.getAttribute(ATTR_NAME); if (attr == null || "".equals(attr)) throw new WSDDException(Messages.getMessage("badNameAttr00")); return new QName("", attr); } /** * Constructor - build an undeployment from a DOM Element. * * @param e the DOM Element to initialize from * @throws WSDDException if there is a problem */ public WSDDUndeployment(Element e) throws WSDDException { super(e); Element [] elements = getChildElements(e, ELEM_WSDD_HANDLER); int i; for (i = 0; i < elements.length; i++) { addHandler(getQName(elements[i])); } elements = getChildElements(e, ELEM_WSDD_CHAIN); for (i = 0; i < elements.length; i++) { addChain(getQName(elements[i])); } elements = getChildElements(e, ELEM_WSDD_TRANSPORT); for (i = 0; i < elements.length; i++) { addTransport(getQName(elements[i])); } elements = getChildElements(e, ELEM_WSDD_SERVICE); for (i = 0; i < elements.length; i++) { addService(getQName(elements[i])); } /* // How to deal with undeploying mappings? elements = getChildElements(e, ELEM_WSDD_TYPEMAPPING); for (i = 0; i < elements.length; i++) { WSDDTypeMapping mapping = new WSDDTypeMapping(elements[i]); addTypeMapping(mapping); } elements = getChildElements(e, ELEM_WSDD_BEANMAPPING); for (i = 0; i < elements.length; i++) { WSDDBeanMapping mapping = new WSDDBeanMapping(elements[i]); addTypeMapping(mapping); } */ } protected QName getElementName() { return QNAME_UNDEPLOY; } public void undeployFromRegistry(WSDDDeployment registry) throws ConfigurationException { QName qname; for (int n = 0; n < handlers.size(); n++) { qname = (QName)handlers.get(n); registry.undeployHandler(qname); } for (int n = 0; n < chains.size(); n++) { qname = (QName)chains.get(n); registry.undeployHandler(qname); } for (int n = 0; n < transports.size(); n++) { qname = (QName)transports.get(n); registry.undeployTransport(qname); } for (int n = 0; n < services.size(); n++) { qname = (QName)services.get(n); try { String sname = qname.getLocalPart(); MessageContext messageContext = MessageContext.getCurrentContext(); if (messageContext != null) { SOAPService service = messageContext.getAxisEngine() .getService(sname); if ( service != null ) service.clearSessions(); } } catch(Exception exp) { throw new ConfigurationException(exp); } registry.undeployService(qname); } } private void writeElement(SerializationContext context, QName elementQName, QName qname) throws IOException { AttributesImpl attrs = new org.xml.sax.helpers.AttributesImpl(); attrs.addAttribute("", ATTR_NAME, ATTR_NAME, "CDATA", context.qName2String(qname)); context.startElement(elementQName, attrs); context.endElement(); } public void writeToContext(SerializationContext context) throws IOException { context.registerPrefixForURI(NS_PREFIX_WSDD, URI_WSDD); context.startElement(WSDDConstants.QNAME_UNDEPLOY, null); Iterator i = handlers.iterator(); QName qname; while (i.hasNext()) { qname = (QName)i.next(); writeElement(context, QNAME_HANDLER, qname); } i = chains.iterator(); while (i.hasNext()) { qname = (QName)i.next(); writeElement(context, QNAME_CHAIN, qname); } i = services.iterator(); while (i.hasNext()) { qname = (QName)i.next(); writeElement(context, QNAME_SERVICE, qname); } i = transports.iterator(); while (i.hasNext()) { qname = (QName)i.next(); writeElement(context, QNAME_TRANSPORT, qname); } i = typeMappings.iterator(); while (i.hasNext()) { WSDDTypeMapping mapping = (WSDDTypeMapping)i.next(); mapping.writeToContext(context); } context.endElement(); } /** * * @return XXX */ public WSDDTypeMapping[] getTypeMappings() { WSDDTypeMapping[] t = new WSDDTypeMapping[typeMappings.size()]; typeMappings.toArray(t); return t; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -