com.sun.xml.internal.ws.api.BindingID Java Examples

The following examples show how to use com.sun.xml.internal.ws.api.BindingID. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: WebServiceFeatureList.java    From TencentKona-8 with GNU General Public License v2.0 6 votes vote down vote up
/**
 *
 * @param endpointClass web service impl class
 */
public void parseAnnotations(Class<?> endpointClass) {
    for (Annotation a : endpointClass.getAnnotations()) {
        WebServiceFeature ftr = getFeature(a);
        if (ftr != null) {
            if (ftr instanceof MTOMFeature) {
                // check conflict with @BindingType
                BindingID bindingID = BindingID.parse(endpointClass);
                MTOMFeature bindingMtomSetting = bindingID.createBuiltinFeatureList().get(MTOMFeature.class);
                if (bindingMtomSetting != null && bindingMtomSetting.isEnabled() ^ ftr.isEnabled()) {
                    throw new RuntimeModelerException(
                        ModelerMessages.RUNTIME_MODELER_MTOM_CONFLICT(bindingID, ftr.isEnabled()));
                }
            }
            add(ftr);
        }
    }
}
 
Example #2
Source File: WebServiceFeatureList.java    From openjdk-jdk8u with GNU General Public License v2.0 6 votes vote down vote up
/**
 *
 * @param endpointClass web service impl class
 */
public void parseAnnotations(Class<?> endpointClass) {
    for (Annotation a : endpointClass.getAnnotations()) {
        WebServiceFeature ftr = getFeature(a);
        if (ftr != null) {
            if (ftr instanceof MTOMFeature) {
                // check conflict with @BindingType
                BindingID bindingID = BindingID.parse(endpointClass);
                MTOMFeature bindingMtomSetting = bindingID.createBuiltinFeatureList().get(MTOMFeature.class);
                if (bindingMtomSetting != null && bindingMtomSetting.isEnabled() ^ ftr.isEnabled()) {
                    throw new RuntimeModelerException(
                        ModelerMessages.RUNTIME_MODELER_MTOM_CONFLICT(bindingID, ftr.isEnabled()));
                }
            }
            add(ftr);
        }
    }
}
 
Example #3
Source File: Stub.java    From openjdk-8-source with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Creates a new pipeline for the given port name.
 */
private Tube createPipeline(WSPortInfo portInfo, WSBinding binding) {
    //Check all required WSDL extensions are understood
    checkAllWSDLExtensionsUnderstood(portInfo, binding);
    SEIModel seiModel = null;
    Class sei = null;
    if (portInfo instanceof SEIPortInfo) {
            SEIPortInfo sp = (SEIPortInfo) portInfo;
        seiModel = sp.model;
        sei = sp.sei;
    }
    BindingID bindingId = portInfo.getBindingId();

    TubelineAssembler assembler = TubelineAssemblerFactory.create(
            Thread.currentThread().getContextClassLoader(), bindingId, owner.getContainer());
    if (assembler == null) {
        throw new WebServiceException("Unable to process bindingID=" + bindingId); // TODO: i18n
    }
    return assembler.createClient(
            new ClientTubeAssemblerContext(
                    portInfo.getEndpointAddress(),
                    portInfo.getPort(),
                    this, binding, owner.getContainer(), ((BindingImpl) binding).createCodec(), seiModel, sei));
}
 
Example #4
Source File: WebServiceFeatureList.java    From openjdk-jdk8u-backup with GNU General Public License v2.0 6 votes vote down vote up
/**
 *
 * @param endpointClass web service impl class
 */
public void parseAnnotations(Class<?> endpointClass) {
    for (Annotation a : endpointClass.getAnnotations()) {
        WebServiceFeature ftr = getFeature(a);
        if (ftr != null) {
            if (ftr instanceof MTOMFeature) {
                // check conflict with @BindingType
                BindingID bindingID = BindingID.parse(endpointClass);
                MTOMFeature bindingMtomSetting = bindingID.createBuiltinFeatureList().get(MTOMFeature.class);
                if (bindingMtomSetting != null && bindingMtomSetting.isEnabled() ^ ftr.isEnabled()) {
                    throw new RuntimeModelerException(
                        ModelerMessages.RUNTIME_MODELER_MTOM_CONFLICT(bindingID, ftr.isEnabled()));
                }
            }
            add(ftr);
        }
    }
}
 
Example #5
Source File: DatabindingFactoryImpl.java    From openjdk-jdk8u with GNU General Public License v2.0 6 votes vote down vote up
public Builder property(String name, Object value) {
    config.properties().put(name, value);
    if (isfor(BindingID.class, name, value)) {
        config.getMappingInfo().setBindingID((BindingID)value);
    }
    if (isfor(WSBinding.class, name, value)) {
        config.setWSBinding((WSBinding)value);
    }
    if (isfor(WSDLPort.class, name, value)) {
        config.setWsdlPort((WSDLPort)value);
    }
    if (isfor(MetadataReader.class, name, value)) {
        config.setMetadataReader((MetadataReader)value);
    }
    return this;
}
 
Example #6
Source File: WebServiceFeatureList.java    From jdk8u60 with GNU General Public License v2.0 6 votes vote down vote up
/**
 *
 * @param endpointClass web service impl class
 */
public void parseAnnotations(Class<?> endpointClass) {
    for (Annotation a : endpointClass.getAnnotations()) {
        WebServiceFeature ftr = getFeature(a);
        if (ftr != null) {
            if (ftr instanceof MTOMFeature) {
                // check conflict with @BindingType
                BindingID bindingID = BindingID.parse(endpointClass);
                MTOMFeature bindingMtomSetting = bindingID.createBuiltinFeatureList().get(MTOMFeature.class);
                if (bindingMtomSetting != null && bindingMtomSetting.isEnabled() ^ ftr.isEnabled()) {
                    throw new RuntimeModelerException(
                        ModelerMessages.RUNTIME_MODELER_MTOM_CONFLICT(bindingID, ftr.isEnabled()));
                }
            }
            add(ftr);
        }
    }
}
 
Example #7
Source File: Stub.java    From hottub with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Creates a new pipeline for the given port name.
 */
private Tube createPipeline(WSPortInfo portInfo, WSBinding binding) {
    //Check all required WSDL extensions are understood
    checkAllWSDLExtensionsUnderstood(portInfo, binding);
    SEIModel seiModel = null;
    Class sei = null;
    if (portInfo instanceof SEIPortInfo) {
            SEIPortInfo sp = (SEIPortInfo) portInfo;
        seiModel = sp.model;
        sei = sp.sei;
    }
    BindingID bindingId = portInfo.getBindingId();

    TubelineAssembler assembler = TubelineAssemblerFactory.create(
            Thread.currentThread().getContextClassLoader(), bindingId, owner.getContainer());
    if (assembler == null) {
        throw new WebServiceException("Unable to process bindingID=" + bindingId); // TODO: i18n
    }
    return assembler.createClient(
            new ClientTubeAssemblerContext(
                    portInfo.getEndpointAddress(),
                    portInfo.getPort(),
                    this, binding, owner.getContainer(), ((BindingImpl) binding).createCodec(), seiModel, sei));
}
 
Example #8
Source File: DatabindingFactoryImpl.java    From TencentKona-8 with GNU General Public License v2.0 6 votes vote down vote up
public Builder property(String name, Object value) {
    config.properties().put(name, value);
    if (isfor(BindingID.class, name, value)) {
        config.getMappingInfo().setBindingID((BindingID)value);
    }
    if (isfor(WSBinding.class, name, value)) {
        config.setWSBinding((WSBinding)value);
    }
    if (isfor(WSDLPort.class, name, value)) {
        config.setWsdlPort((WSDLPort)value);
    }
    if (isfor(MetadataReader.class, name, value)) {
        config.setMetadataReader((MetadataReader)value);
    }
    return this;
}
 
Example #9
Source File: WebServiceFeatureList.java    From openjdk-8 with GNU General Public License v2.0 6 votes vote down vote up
/**
 *
 * @param endpointClass web service impl class
 */
public void parseAnnotations(Class<?> endpointClass) {
    for (Annotation a : endpointClass.getAnnotations()) {
        WebServiceFeature ftr = getFeature(a);
        if (ftr != null) {
            if (ftr instanceof MTOMFeature) {
                // check conflict with @BindingType
                BindingID bindingID = BindingID.parse(endpointClass);
                MTOMFeature bindingMtomSetting = bindingID.createBuiltinFeatureList().get(MTOMFeature.class);
                if (bindingMtomSetting != null && bindingMtomSetting.isEnabled() ^ ftr.isEnabled()) {
                    throw new RuntimeModelerException(
                        ModelerMessages.RUNTIME_MODELER_MTOM_CONFLICT(bindingID, ftr.isEnabled()));
                }
            }
            add(ftr);
        }
    }
}
 
Example #10
Source File: PortInfo.java    From jdk8u60 with GNU General Public License v2.0 5 votes vote down vote up
public PortInfo(WSServiceDelegate owner, EndpointAddress targetEndpoint, QName name, BindingID bindingId) {
    this.owner = owner;
    this.targetEndpoint = targetEndpoint;
    this.portName = name;
    this.bindingId = bindingId;
    this.portModel = getPortModel(owner, name);
    this.policyMap = createPolicyMap();

}
 
Example #11
Source File: EndpointImpl.java    From openjdk-jdk8u-backup with GNU General Public License v2.0 5 votes vote down vote up
private EndpointImpl(@NotNull BindingID bindingId, Object impl, @NotNull Class implClass,
                    Invoker invoker, WebServiceFeature ... features) {
    binding = BindingImpl.create(bindingId, features);
    this.implClass = implClass;
    this.invoker = invoker;
    this.implementor = impl;
}
 
Example #12
Source File: PipelineAssemblerFactory.java    From jdk8u60 with GNU General Public License v2.0 5 votes vote down vote up
/**
 * Locates {@link PipelineAssemblerFactory}s and create
 * a suitable {@link PipelineAssembler}.
 *
 * @param bindingId
 *      The binding ID string for which the new {@link PipelineAssembler}
 *      is created. Must not be null.
 * @return
 *      Always non-null, since we fall back to our default {@link PipelineAssembler}.
 */
public static PipelineAssembler create(ClassLoader classLoader, BindingID bindingId) {
    for (PipelineAssemblerFactory factory : ServiceFinder.find(PipelineAssemblerFactory.class,classLoader)) {
        PipelineAssembler assembler = factory.doCreate(bindingId);
        if(assembler!=null) {
            logger.fine(factory.getClass()+" successfully created "+assembler);
            return assembler;
        }
    }

    // default binding IDs that are known
    // TODO: replace this with proper ones
    return new com.sun.xml.internal.ws.util.pipe.StandalonePipeAssembler();
}
 
Example #13
Source File: PipelineAssemblerFactory.java    From openjdk-8-source with GNU General Public License v2.0 5 votes vote down vote up
/**
 * Locates {@link PipelineAssemblerFactory}s and create
 * a suitable {@link PipelineAssembler}.
 *
 * @param bindingId
 *      The binding ID string for which the new {@link PipelineAssembler}
 *      is created. Must not be null.
 * @return
 *      Always non-null, since we fall back to our default {@link PipelineAssembler}.
 */
public static PipelineAssembler create(ClassLoader classLoader, BindingID bindingId) {
    for (PipelineAssemblerFactory factory : ServiceFinder.find(PipelineAssemblerFactory.class,classLoader)) {
        PipelineAssembler assembler = factory.doCreate(bindingId);
        if(assembler!=null) {
            logger.fine(factory.getClass()+" successfully created "+assembler);
            return assembler;
        }
    }

    // default binding IDs that are known
    // TODO: replace this with proper ones
    return new com.sun.xml.internal.ws.util.pipe.StandalonePipeAssembler();
}
 
Example #14
Source File: BindingImpl.java    From openjdk-8-source with GNU General Public License v2.0 5 votes vote down vote up
protected BindingImpl(BindingID bindingId, WebServiceFeature ... features) {
    this.bindingId = bindingId;
    handlerConfig = new HandlerConfiguration(Collections.<String>emptySet(), Collections.<Handler>emptyList());
    if (handlerConfig.getHandlerKnownHeaders() != null)
        knownHeaders.addAll(handlerConfig.getHandlerKnownHeaders());
    this.features = new WebServiceFeatureList(features);
    this.features.validate();
}
 
Example #15
Source File: WSServiceDelegate.java    From hottub with GNU General Public License v2.0 5 votes vote down vote up
public void addPort(QName portName, String bindingId, String endpointAddress) throws WebServiceException {
    if (!ports.containsKey(portName)) {
        BindingID bid = (bindingId == null) ? BindingID.SOAP11_HTTP : BindingID.parse(bindingId);
        ports.put(portName,
                new PortInfo(this, (endpointAddress == null) ? null :
                        EndpointAddress.create(endpointAddress), portName, bid));
    } else
        throw new WebServiceException(DispatchMessages.DUPLICATE_PORT(portName.toString()));
}
 
Example #16
Source File: PortInfo.java    From openjdk-8-source with GNU General Public License v2.0 5 votes vote down vote up
public PortInfo(WSServiceDelegate owner, EndpointAddress targetEndpoint, QName name, BindingID bindingId) {
    this.owner = owner;
    this.targetEndpoint = targetEndpoint;
    this.portName = name;
    this.bindingId = bindingId;
    this.portModel = getPortModel(owner, name);
    this.policyMap = createPolicyMap();

}
 
Example #17
Source File: PortInfoImpl.java    From openjdk-jdk9 with GNU General Public License v2.0 5 votes vote down vote up
/**
 * The class is constructed with the information needed to identify
 * a port. This information cannot be changed later.
 *
 * @param bindingId The binding ID string.
 * @param portName The QName of the port.
 * @param serviceName The QName of the service.
 */
public PortInfoImpl(BindingID bindingId, QName portName, QName serviceName) {
    if (bindingId == null) {
        throw new RuntimeException("bindingId cannot be null");
    }
    if (portName == null) {
        throw new RuntimeException("portName cannot be null");
    }
    if (serviceName == null) {
        throw new RuntimeException("serviceName cannot be null");
    }
    this.bindingId = bindingId;
    this.portName = portName;
    this.serviceName = serviceName;
}
 
Example #18
Source File: WsgenOptions.java    From openjdk-jdk9 with GNU General Public License v2.0 5 votes vote down vote up
private void validateBinding() throws BadCommandLineException {
    if (genWsdl) {
        BindingID binding = BindingID.parse(endpoint);
        if ((binding.equals(BindingID.SOAP12_HTTP) ||
             binding.equals(BindingID.SOAP12_HTTP_MTOM)) &&
                !(protocol.equals(X_SOAP12) && isExtensionMode())) {
            throw new BadCommandLineException(WscompileMessages.WSGEN_CANNOT_GEN_WSDL_FOR_SOAP_12_BINDING(binding.toString(), endpoint.getName()));
        }
        if (binding.equals(BindingID.XML_HTTP)) {
            throw new BadCommandLineException(WscompileMessages.WSGEN_CANNOT_GEN_WSDL_FOR_NON_SOAP_BINDING(binding.toString(), endpoint.getName()));
        }
    }
}
 
Example #19
Source File: EndpointImpl.java    From openjdk-8-source with GNU General Public License v2.0 5 votes vote down vote up
private EndpointImpl(@NotNull BindingID bindingId, Object impl, @NotNull Class implClass,
                    Invoker invoker, WebServiceFeature ... features) {
    binding = BindingImpl.create(bindingId, features);
    this.implClass = implClass;
    this.invoker = invoker;
    this.implementor = impl;
}
 
Example #20
Source File: PortInfoImpl.java    From hottub with GNU General Public License v2.0 5 votes vote down vote up
/**
 * The class is constructed with the information needed to identify
 * a port. This information cannot be changed later.
 *
 * @param bindingId The binding ID string.
 * @param portName The QName of the port.
 * @param serviceName The QName of the service.
 */
public PortInfoImpl(BindingID bindingId, QName portName, QName serviceName) {
    if (bindingId == null) {
        throw new RuntimeException("bindingId cannot be null");
    }
    if (portName == null) {
        throw new RuntimeException("portName cannot be null");
    }
    if (serviceName == null) {
        throw new RuntimeException("serviceName cannot be null");
    }
    this.bindingId = bindingId;
    this.portName = portName;
    this.serviceName = serviceName;
}
 
Example #21
Source File: WsgenOptions.java    From openjdk-jdk8u with GNU General Public License v2.0 5 votes vote down vote up
private void validateBinding() throws BadCommandLineException {
    if (genWsdl) {
        BindingID binding = BindingID.parse(endpoint);
        if ((binding.equals(BindingID.SOAP12_HTTP) ||
             binding.equals(BindingID.SOAP12_HTTP_MTOM)) &&
                !(protocol.equals(X_SOAP12) && isExtensionMode())) {
            throw new BadCommandLineException(WscompileMessages.WSGEN_CANNOT_GEN_WSDL_FOR_SOAP_12_BINDING(binding.toString(), endpoint.getName()));
        }
        if (binding.equals(BindingID.XML_HTTP)) {
            throw new BadCommandLineException(WscompileMessages.WSGEN_CANNOT_GEN_WSDL_FOR_NON_SOAP_BINDING(binding.toString(), endpoint.getName()));
        }
    }
}
 
Example #22
Source File: WsgenOptions.java    From openjdk-jdk8u-backup with GNU General Public License v2.0 5 votes vote down vote up
private void validateBinding() throws BadCommandLineException {
    if (genWsdl) {
        BindingID binding = BindingID.parse(endpoint);
        if ((binding.equals(BindingID.SOAP12_HTTP) ||
             binding.equals(BindingID.SOAP12_HTTP_MTOM)) &&
                !(protocol.equals(X_SOAP12) && isExtensionMode())) {
            throw new BadCommandLineException(WscompileMessages.WSGEN_CANNOT_GEN_WSDL_FOR_SOAP_12_BINDING(binding.toString(), endpoint.getName()));
        }
        if (binding.equals(BindingID.XML_HTTP)) {
            throw new BadCommandLineException(WscompileMessages.WSGEN_CANNOT_GEN_WSDL_FOR_NON_SOAP_BINDING(binding.toString(), endpoint.getName()));
        }
    }
}
 
Example #23
Source File: WsgenOptions.java    From openjdk-8-source with GNU General Public License v2.0 5 votes vote down vote up
BindingID getBindingID(String protocol) {
    if (protocol.equals(SOAP11))
        return BindingID.SOAP11_HTTP;
    if (protocol.equals(X_SOAP12))
        return BindingID.SOAP12_HTTP;
    String lexical = nonstdProtocols.get(protocol);
    return (lexical != null) ? BindingID.parse(lexical) : null;
}
 
Example #24
Source File: SOAPBindingImpl.java    From openjdk-8 with GNU General Public License v2.0 5 votes vote down vote up
/**
 * Use {@link BindingImpl#create(BindingID)} to create this.
 *
 * @param bindingId binding id
 * @param features
 *      These features have a precedence over
 *      {@link BindingID#createBuiltinFeatureList() the implicit features}
 *      associated with the {@link BindingID}.
 */
SOAPBindingImpl(BindingID bindingId, WebServiceFeature... features) {
    super(bindingId, features);
    this.soapVersion = bindingId.getSOAPVersion();
    //populates with required roles and updates handlerConfig
    setRoles(new HashSet<String>());
    //Is this still required? comment out for now
    //setupSystemHandlerDelegate(serviceName);

    this.features.addAll(bindingId.createBuiltinFeatureList());
}
 
Example #25
Source File: EndpointFactory.java    From openjdk-jdk8u-backup with GNU General Public License v2.0 5 votes vote down vote up
/**
     * Generates the WSDL and XML Schema for the endpoint if necessary
     * It generates WSDL only for SOAP1.1, and for XSOAP1.2 bindings
     */
    private static SDDocumentImpl generateWSDL(WSBinding binding, AbstractSEIModelImpl seiModel, List<SDDocumentImpl> docs,
                                               Container container, Class implType) {
        BindingID bindingId = binding.getBindingId();
        if (!bindingId.canGenerateWSDL()) {
            throw new ServerRtException("can.not.generate.wsdl", bindingId);
        }

        if (bindingId.toString().equals(SOAPBindingImpl.X_SOAP12HTTP_BINDING)) {
            String msg = ServerMessages.GENERATE_NON_STANDARD_WSDL();
            logger.warning(msg);
        }

        // Generate WSDL and schema documents using runtime model
        WSDLGenResolver wsdlResolver = new WSDLGenResolver(docs,seiModel.getServiceQName(),seiModel.getPortTypeName());
        WSDLGenInfo wsdlGenInfo = new WSDLGenInfo();
        wsdlGenInfo.setWsdlResolver(wsdlResolver);
        wsdlGenInfo.setContainer(container);
        wsdlGenInfo.setExtensions(ServiceFinder.find(WSDLGeneratorExtension.class).toArray());
        wsdlGenInfo.setInlineSchemas(false);
        wsdlGenInfo.setSecureXmlProcessingDisabled(isSecureXmlProcessingDisabled(binding.getFeatures()));
        seiModel.getDatabinding().generateWSDL(wsdlGenInfo);
//        WSDLGenerator wsdlGen = new WSDLGenerator(seiModel, wsdlResolver, binding, container, implType, false,
//                ServiceFinder.find(WSDLGeneratorExtension.class).toArray());
//        wsdlGen.doGeneration();
        return wsdlResolver.updateDocs();
    }
 
Example #26
Source File: WSServiceDelegate.java    From TencentKona-8 with GNU General Public License v2.0 5 votes vote down vote up
public void addPort(QName portName, String bindingId, String endpointAddress) throws WebServiceException {
    if (!ports.containsKey(portName)) {
        BindingID bid = (bindingId == null) ? BindingID.SOAP11_HTTP : BindingID.parse(bindingId);
        ports.put(portName,
                new PortInfo(this, (endpointAddress == null) ? null :
                        EndpointAddress.create(endpointAddress), portName, bid));
    } else
        throw new WebServiceException(DispatchMessages.DUPLICATE_PORT(portName.toString()));
}
 
Example #27
Source File: WsgenOptions.java    From TencentKona-8 with GNU General Public License v2.0 5 votes vote down vote up
private void validateBinding() throws BadCommandLineException {
    if (genWsdl) {
        BindingID binding = BindingID.parse(endpoint);
        if ((binding.equals(BindingID.SOAP12_HTTP) ||
             binding.equals(BindingID.SOAP12_HTTP_MTOM)) &&
                !(protocol.equals(X_SOAP12) && isExtensionMode())) {
            throw new BadCommandLineException(WscompileMessages.WSGEN_CANNOT_GEN_WSDL_FOR_SOAP_12_BINDING(binding.toString(), endpoint.getName()));
        }
        if (binding.equals(BindingID.XML_HTTP)) {
            throw new BadCommandLineException(WscompileMessages.WSGEN_CANNOT_GEN_WSDL_FOR_NON_SOAP_BINDING(binding.toString(), endpoint.getName()));
        }
    }
}
 
Example #28
Source File: PortInfoImpl.java    From openjdk-jdk8u with GNU General Public License v2.0 5 votes vote down vote up
/**
 * The class is constructed with the information needed to identify
 * a port. This information cannot be changed later.
 *
 * @param bindingId The binding ID string.
 * @param portName The QName of the port.
 * @param serviceName The QName of the service.
 */
public PortInfoImpl(BindingID bindingId, QName portName, QName serviceName) {
    if (bindingId == null) {
        throw new RuntimeException("bindingId cannot be null");
    }
    if (portName == null) {
        throw new RuntimeException("portName cannot be null");
    }
    if (serviceName == null) {
        throw new RuntimeException("serviceName cannot be null");
    }
    this.bindingId = bindingId;
    this.portName = portName;
    this.serviceName = serviceName;
}
 
Example #29
Source File: WSServiceDelegate.java    From openjdk-8 with GNU General Public License v2.0 5 votes vote down vote up
public void addPort(QName portName, String bindingId, String endpointAddress) throws WebServiceException {
    if (!ports.containsKey(portName)) {
        BindingID bid = (bindingId == null) ? BindingID.SOAP11_HTTP : BindingID.parse(bindingId);
        ports.put(portName,
                new PortInfo(this, (endpointAddress == null) ? null :
                        EndpointAddress.create(endpointAddress), portName, bid));
    } else
        throw new WebServiceException(DispatchMessages.DUPLICATE_PORT(portName.toString()));
}
 
Example #30
Source File: BindingImpl.java    From openjdk-8 with GNU General Public License v2.0 5 votes vote down vote up
protected BindingImpl(BindingID bindingId, WebServiceFeature ... features) {
    this.bindingId = bindingId;
    handlerConfig = new HandlerConfiguration(Collections.<String>emptySet(), Collections.<Handler>emptyList());
    if (handlerConfig.getHandlerKnownHeaders() != null)
        knownHeaders.addAll(handlerConfig.getHandlerKnownHeaders());
    this.features = new WebServiceFeatureList(features);
    this.features.validate();
}