/*
* Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package javax.xml.ws;
import javax.xml.ws.soap.AddressingFeature;
This feature clarifies the use of the wsdl:binding
in a JAX-WS runtime. This feature can be used during the creation of SEI proxy, and Dispatch
instances on the client side and Endpoint
instances on the server side. This feature cannot be used for Service
instance creation on the client side. This feature is only useful with web services that have an associated WSDL. Enabling this feature requires that a JAX-WS implementation inspect the wsdl:binding
for an endpoint at runtime to make sure that all wsdl:extensions
that have the required
attribute set to true
are understood and are being used.
The following describes the affects of this feature with respect
to be enabled or disabled:
- ENABLED: In this Mode, a JAX-WS runtime MUST assure that all required
wsdl:binding
extensions(including policies) are either understood and used by the runtime, or explicitly disabled by the web service application. A web service can disable a particular extension if there is a corresponding WebServiceFeature
or annotation. Similarly, a web service client can disable particular extension using the corresponding WebServiceFeature
while creating a proxy or Dispatch instance. The runtime MUST also make sure that binding of SEI parameters/return values respect the wsdl:binding
. With this feature enabled, if a required (wsdl:required="true"
) wsdl:binding
extension is in the WSDL and it is not supported by a JAX-WS runtime and it has not been explicitly turned off by the web service developer, then that JAX-WS runtime MUST behave appropriately based on whether it is on the client or server:
- Client: runtime MUST throw a
WebServiceException
no sooner than when one of the methods above is invoked but no later than the first invocation of an endpoint operation. - Server: throw a
WebServiceException
and the endpoint MUST fail to deploy
- DISABLED: In this Mode, an implementation may choose whether to inspect the
wsdl:binding
or not and to what degree the wsdl:binding
will be inspected. For example, one implementation may choose to behave as if this feature is enabled, another implementation may only choose to verify the SEI's parameter/return type bindings.
See Also: Since: 1.6, JAX-WS 2.1
/**
* This feature clarifies the use of the {@code wsdl:binding}
* in a JAX-WS runtime.
*
* This feature can be used during the creation of SEI proxy, and
* {@link Dispatch} instances on the client side and {@link Endpoint}
* instances on the server side. This feature cannot be used for {@link Service}
* instance creation on the client side.
* <p>
* This feature is only useful with web services that have an
* associated WSDL. Enabling this feature requires that a JAX-WS
* implementation inspect the {@code wsdl:binding} for an
* endpoint at runtime to make sure that all {@code wsdl:extensions}
* that have the {@code required} attribute set to {@code true}
* are understood and are being used.
* <p>
* The following describes the affects of this feature with respect
* to be enabled or disabled:
* <ul>
* <li> ENABLED: In this Mode, a JAX-WS runtime MUST assure that all
* required {@code wsdl:binding} extensions(including policies) are
* either understood and used by the runtime, or explicitly disabled by the
* web service application. A web service can disable a particular
* extension if there is a corresponding {@link WebServiceFeature} or annotation.
* Similarly, a web service client can disable
* particular extension using the corresponding {@code WebServiceFeature} while
* creating a proxy or Dispatch instance.
* The runtime MUST also make sure that binding of
* SEI parameters/return values respect the {@code wsdl:binding}.
* With this feature enabled, if a required ({@code wsdl:required="true"})
* {@code wsdl:binding} extension is in the WSDL and it is not
* supported by a JAX-WS runtime and it has not
* been explicitly turned off by the web service developer, then
* that JAX-WS runtime MUST behave appropriately based on whether it is
* on the client or server:
* <UL>
* <li>Client: runtime MUST throw a
* {@link WebServiceException} no sooner than when one of the methods
* above is invoked but no later than the first invocation of an endpoint
* operation.
* <li>Server: throw a {@link WebServiceException} and the endpoint MUST fail to deploy
* </ul>
*
* <li> DISABLED: In this Mode, an implementation may choose whether
* to inspect the {@code wsdl:binding} or not and to what degree
* the {@code wsdl:binding} will be inspected. For example,
* one implementation may choose to behave as if this feature is enabled,
* another implementation may only choose to verify the SEI's
* parameter/return type bindings.
* </ul>
*
* @see AddressingFeature
*
* @since 1.6, JAX-WS 2.1
*/
public final class RespectBindingFeature extends WebServiceFeature {
Constant value identifying the RespectBindingFeature
/**
*
* Constant value identifying the RespectBindingFeature
*/
public static final String ID = "javax.xml.ws.RespectBindingFeature";
Creates an RespectBindingFeature
. The instance created will be enabled. /**
* Creates an {@code RespectBindingFeature}.
* The instance created will be enabled.
*/
public RespectBindingFeature() {
this.enabled = true;
}
Creates an RespectBindingFeature
Params: - enabled – specifies whether this feature should
be enabled or not.
/**
* Creates an RespectBindingFeature
*
* @param enabled specifies whether this feature should
* be enabled or not.
*/
public RespectBindingFeature(boolean enabled) {
this.enabled = enabled;
}
{@inheritDoc}
/**
* {@inheritDoc}
*/
public String getID() {
return ID;
}
}