/*
 * Copyright (c) 2005, 2017, 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.handler;
import java.util.Map;

The interface MessageContext abstracts the message context that is processed by a handler in the handle method.

The MessageContext interface provides methods to manage a property set. MessageContext properties enable handlers in a handler chain to share processing related state.

Since:1.6, JAX-WS 2.0
/** * The interface {@code MessageContext} abstracts the message * context that is processed by a handler in the {@code handle} * method. * * <p>The {@code MessageContext} interface provides methods to * manage a property set. {@code MessageContext} properties * enable handlers in a handler chain to share processing related * state. * * @since 1.6, JAX-WS 2.0 */
public interface MessageContext extends Map<String, Object> {
Standard property: message direction, true for outbound messages, false for inbound.

Type: boolean

/** * Standard property: message direction, {@code true} for * outbound messages, {@code false} for inbound. * <p>Type: boolean */
public static final String MESSAGE_OUTBOUND_PROPERTY = "javax.xml.ws.handler.message.outbound";
Standard property: Map of attachments to a message for the inbound message, key is the MIME Content-ID, value is a DataHandler.

Type: java.util.Map<String, DataHandler>

/** * Standard property: Map of attachments to a message for the inbound * message, key is the MIME Content-ID, value is a DataHandler. * <p>Type: {@code java.util.Map<String, DataHandler>} */
public static final String INBOUND_MESSAGE_ATTACHMENTS = "javax.xml.ws.binding.attachments.inbound";
Standard property: Map of attachments to a message for the outbound message, key is the MIME Content-ID, value is a DataHandler.

Type: java.util.Map<String, DataHandler>

/** * Standard property: Map of attachments to a message for the outbound * message, key is the MIME Content-ID, value is a DataHandler. * <p>Type: {@code java.util.Map<String, DataHandler>} */
public static final String OUTBOUND_MESSAGE_ATTACHMENTS = "javax.xml.ws.binding.attachments.outbound";
Standard property: input source for WSDL document.

Type: org.xml.sax.InputSource

/** * Standard property: input source for WSDL document. * <p>Type: org.xml.sax.InputSource */
public static final String WSDL_DESCRIPTION = "javax.xml.ws.wsdl.description";
Standard property: name of WSDL service.

Type: javax.xml.namespace.QName

/** * Standard property: name of WSDL service. * <p>Type: javax.xml.namespace.QName */
public static final String WSDL_SERVICE = "javax.xml.ws.wsdl.service";
Standard property: name of WSDL port.

Type: javax.xml.namespace.QName

/** * Standard property: name of WSDL port. * <p>Type: javax.xml.namespace.QName */
public static final String WSDL_PORT = "javax.xml.ws.wsdl.port";
Standard property: name of wsdl interface (2.0) or port type (1.1).

Type: javax.xml.namespace.QName

/** * Standard property: name of wsdl interface (2.0) or port type (1.1). * <p>Type: javax.xml.namespace.QName */
public static final String WSDL_INTERFACE = "javax.xml.ws.wsdl.interface";
Standard property: name of WSDL operation.

Type: javax.xml.namespace.QName

/** * Standard property: name of WSDL operation. * <p>Type: javax.xml.namespace.QName */
public static final String WSDL_OPERATION = "javax.xml.ws.wsdl.operation";
Standard property: HTTP response status code.

Type: java.lang.Integer

/** * Standard property: HTTP response status code. * <p>Type: java.lang.Integer */
public static final String HTTP_RESPONSE_CODE = "javax.xml.ws.http.response.code";
Standard property: HTTP request headers.

Type: java.util.Map<java.lang.String, java.util.List<java.lang.String>>

/** * Standard property: HTTP request headers. * <p>Type: {@code java.util.Map<java.lang.String, java.util.List<java.lang.String>>} */
public static final String HTTP_REQUEST_HEADERS = "javax.xml.ws.http.request.headers";
Standard property: HTTP response headers.

Type: java.util.Map<java.lang.String, java.util.List<java.lang.String>>

/** * Standard property: HTTP response headers. * <p>Type: {@code java.util.Map<java.lang.String, java.util.List<java.lang.String>>} */
public static final String HTTP_RESPONSE_HEADERS = "javax.xml.ws.http.response.headers";
Standard property: HTTP request method.

Type: java.lang.String

/** * Standard property: HTTP request method. * <p>Type: java.lang.String */
public static final String HTTP_REQUEST_METHOD = "javax.xml.ws.http.request.method";
Standard property: servlet request object.

Type: javax.servlet.http.HttpServletRequest

/** * Standard property: servlet request object. * <p>Type: javax.servlet.http.HttpServletRequest */
public static final String SERVLET_REQUEST = "javax.xml.ws.servlet.request";
Standard property: servlet response object.

Type: javax.servlet.http.HttpServletResponse

/** * Standard property: servlet response object. * <p>Type: javax.servlet.http.HttpServletResponse */
public static final String SERVLET_RESPONSE = "javax.xml.ws.servlet.response";
Standard property: servlet context object.

Type: javax.servlet.ServletContext

/** * Standard property: servlet context object. * <p>Type: javax.servlet.ServletContext */
public static final String SERVLET_CONTEXT = "javax.xml.ws.servlet.context";
Standard property: Query string for request.

Type: String

/** * Standard property: Query string for request. * <p>Type: String **/
public static final String QUERY_STRING = "javax.xml.ws.http.request.querystring";
Standard property: Request Path Info

Type: String

/** * Standard property: Request Path Info * <p>Type: String */
public static final String PATH_INFO = "javax.xml.ws.http.request.pathinfo";
Standard property: WS Addressing Reference Parameters. The list MUST include all SOAP headers marked with the wsa:IsReferenceParameter="true" attribute.

Type: List<Element>

Since:1.6, JAX-WS 2.1
/** * Standard property: WS Addressing Reference Parameters. * The list MUST include all SOAP headers marked with the * wsa:IsReferenceParameter="true" attribute. * <p>Type: {@code List<Element>} * * @since 1.6, JAX-WS 2.1 */
public static final String REFERENCE_PARAMETERS = "javax.xml.ws.reference.parameters";
Property scope. Properties scoped as APPLICATION are visible to handlers, client applications and service endpoints; properties scoped as HANDLER are only normally visible to handlers.
/** * Property scope. Properties scoped as {@code APPLICATION} are * visible to handlers, * client applications and service endpoints; properties scoped as * {@code HANDLER} * are only normally visible to handlers. */
public enum Scope {
Application visibility.
/** * Application visibility. */
APPLICATION,
Handler visibility.
/** * Handler visibility. */
HANDLER};
Sets the scope of a property.
Params:
  • name – Name of the property associated with the MessageContext
  • scope – Desired scope of the property
Throws:
/** * Sets the scope of a property. * * @param name Name of the property associated with the * {@code MessageContext} * @param scope Desired scope of the property * @throws java.lang.IllegalArgumentException if an illegal * property name is specified */
public void setScope(String name, Scope scope);
Gets the scope of a property.
Params:
  • name – Name of the property
Throws:
Returns:Scope of the property
/** * Gets the scope of a property. * * @param name Name of the property * @return Scope of the property * @throws java.lang.IllegalArgumentException if a non-existant * property name is specified */
public Scope getScope(String name); }