IBM Support

PK84170: New JAX-WS properties to allow faster access to SOAPHeader elements.

Fixes are available

7.0.0.5: WebSphere Application Server V7.0 Fix Pack 5 for AIX
7.0.0.5: WebSphere Application Server V7.0 Fix Pack 5 for IBM i
7.0.0.5: WebSphere Application Server V7.0 Fix Pack 5 for Windows
7.0.0.5: WebSphere Application Server V7.0 Fix Pack 5 for HP-UX
7.0.0.5: Java SDK 1.6 SR5 Cumulative Fix for WebSphere Application Server
7.0.0.5: WebSphere Application Server V7.0 Fix Pack 5 for Solaris
7.0.0.5: WebSphere Application Server V7.0 Fix Pack 5 for Linux
7.0.0.7: WebSphere Application Server V7.0 Fix Pack 7 for IBM i
7.0.0.7: WebSphere Application Server V7.0 Fix Pack 7 for AIX
7.0.0.7: WebSphere Application Server V7.0 Fix Pack 7 for Windows
7.0.0.7: WebSphere Application Server V7.0 Fix Pack 7 for HP-UX
7.0.0.7: Java SDK 1.6 SR6 Cumulative Fix for WebSphere Application Server
7.0.0.7: WebSphere Application Server V7.0 Fix Pack 7 for Solaris
7.0.0.7: WebSphere Application Server V7.0 Fix Pack 7 for Linux
7.0.0.9: WebSphere Application Server V7.0 Fix Pack 9 for IBM i
7.0.0.9: WebSphere Application Server V7.0 Fix Pack 9 for Windows
7.0.0.9: WebSphere Application Server V7.0 Fix Pack 9 for AIX
7.0.0.9: WebSphere Application Server V7.0 Fix Pack 9 for HP-UX
7.0.0.9: Java SDK 1.6 SR7 Cumulative Fix for WebSphere Application Server
7.0.0.9: WebSphere Application Server V7.0 Fix Pack 9 for Solaris
7.0.0.9: WebSphere Application Server V7.0 Fix Pack 9 for Linux
7.0.0.11: WebSphere Application Server V7.0 Fix Pack 11 for IBM i
7.0.0.11: WebSphere Application Server V7.0 Fix Pack 11 for Windows
7.0.0.11: WebSphere Application Server V7.0 Fix Pack 11 for HP-UX
7.0.0.11: WebSphere Application Server V7.0 Fix Pack 11 for AIX
7.0.0.11: Java SDK 1.6 SR7 Cumulative Fix for WebSphere Application Server
7.0.0.11: WebSphere Application Server V7.0 Fix Pack 11 for Solaris
7.0.0.11: WebSphere Application Server V7.0 Fix Pack 11 for Linux
7.0.0.13: WebSphere Application Server V7.0 Fix Pack 13 for AIX
7.0.0.13: WebSphere Application Server V7.0 Fix Pack 13 for HP-UX
7.0.0.13: WebSphere Application Server V7.0 Fix Pack 13 for IBM i
7.0.0.13: WebSphere Application Server V7.0 Fix Pack 13 for Linux
7.0.0.13: WebSphere Application Server V7.0 Fix Pack 13 for Solaris
7.0.0.13: WebSphere Application Server V7.0 Fix Pack 13 for Windows
7.0.0.13: Java SDK 1.6 SR8FP1 Cumulative Fix for WebSphere Application Server
7.0.0.15: WebSphere Application Server V7.0 Fix Pack 15 for AIX
7.0.0.15: Java SDK 1.6 SR9 Cumulative Fix for WebSphere Application Server
7.0.0.15: WebSphere Application Server V7.0 Fix Pack 15 for HP-UX
7.0.0.15: WebSphere Application Server V7.0 Fix Pack 15 for IBM i
7.0.0.15: WebSphere Application Server V7.0 Fix Pack 15 for Linux
7.0.0.15: WebSphere Application Server V7.0 Fix Pack 15 for Solaris
7.0.0.15: WebSphere Application Server V7.0 Fix Pack 15 for Windows
7.0.0.17: WebSphere Application Server V7.0 Fix Pack 17
7.0.0.17: Java SDK 1.6 SR9 FP1 Cumulative Fix for WebSphere Application Server
7.0.0.19: WebSphere Application Server V7.0 Fix Pack 19
7.0.0.21: WebSphere Application Server V7.0 Fix Pack 21
7.0.0.23: WebSphere Application Server V7.0 Fix Pack 23
7.0.0.25: WebSphere Application Server V7.0 Fix Pack 25
7.0.0.27: WebSphere Application Server V7.0 Fix Pack 27
7.0.0.29: WebSphere Application Server V7.0 Fix Pack 29
7.0.0.31: WebSphere Application Server V7.0 Fix Pack 31
7.0.0.27: Java SDK 1.6 SR13 FP2 Cumulative Fix for WebSphere Application Server
7.0.0.33: WebSphere Application Server V7.0 Fix Pack 33
7.0.0.35: WebSphere Application Server V7.0 Fix Pack 35

Subscribe

You can track all active APARs for this component.

APAR status

  • Closed as program error.

Error description

  • The JAX-WS programming model allows a developer to access the
    SOAPHeader elements of a SOAPMessage from within a JAX-WS
    application handler.  However the specification APIs are too
    slow for some customer sceanrios.
    
    New IBM specific JAX-WS APIs are introduced.  These new APIS
    will allow the developer faster access of the SOAPHeader
    elements.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  IBM WebSphere Application Server            *
    *                  developers of JAX-WS application handlers   *
    ****************************************************************
    * PROBLEM DESCRIPTION: Alternative API for retrieving SOAP     *
    *                      headers in a JAX-WS handler to improve  *
    *                      performance                             *
    ****************************************************************
    * RECOMMENDATION:  Install a fixpack containing this APAR      *
    ****************************************************************
    After installing this APAR, a customer's JAX-WS handlers may
    directly access and manipulate the SOAPHeader elements of the
    SOAPMessage. The headers of the inbound message and outbound
    message are accessed via the following new properties:
      "jaxws.binding.soap.headers.inbound"
      "jaxws.binding.soap.headers.outbound"
    
    The following example indicates how the headers are accessed
    from a JAX-WS SOAP handler:
    
    // 1) The MessageContext is passed as a parameter to the
    SOAPHandler method
    
    // 2) The Map of headers is retrieved from the MessageContext
    // The Map key is the QName of the header
    // The Map value is a list of Strings.  Each String is a
    // textural representation of one header.
    
    Map<QName, List<String>> requestHeaders =
      (Map<QName, List<String>>)
         messagecontext.get("jaxws.binding.soap.headers.outbound");
    
    // 3) Example code for retrieving a specific header
    QName myQName = new QName("urn:/sample", "myHeader");
    List<String> myHeaders = requestHeaders.get(myQName);
    ...
    
    // 4) If a new headers map is created, it must be set on the
    //    MessageContext
    messagecontext.put(
       "jaxws.binding.soap.headers.outbound",
        requestHeaders);
    
    
    Accessing the SOAPHeader elements with this new API may be
    more performant than accessing the SOAPHeader elements using
    the JAX-WS specification APIs.  (The JAX-WS specification
    provides access to the headers via SAAJ objects.)
    
    
    In addition, application client code may now also get and put
    SOAPHeaders on the RequestContext and ResponseContext objects.
    This capability is already supported in WebSphere Application
    Server version 7.
    
    The following sample code is an example of how a client can
    access the SOAPHeader elements:
    
    // 1) Get the RequestContext from the BindingProvider
    // (for your dispatch or proxy)
    BindingProvider p = (BindingProvider) proxy;
    Map<String, Object> requestContext =
       p.getRequestContext();
    
    // 2) Build a Map of headers
    // The Map key is the QName of the header
    // The Map value is a list of Strings.  Each String is a
    // textural representation of one header.
    Map<QName, List<String>> headersMap =
       new HashMap<QName,List<String>> ();
    
    QName myQName = new QName("urn:/sample", "myHeader");
    String mySOAPHeader = "<p:myHeader xmlns:p='urn"sample' />";
    List<String> mySOAPHeaders = new ArrayList<String>();
    mySOAPHeaders.add(mySOAPHeader);
    headersMap.put(myQName, mySOAPHeaders);
    
    // 3) Put the Map of headers on the RequestContext
    requestContext.put("jaxws.binding.soap.headers.outbound",
                       headersMap);
    
    // 4) Invoke the web service
    proxy.myMethod(...)';
    
    
    More information about these new properties is available in
    the WebSphere Application Server InfoCenter.
    

Problem conclusion

  • The JAX-WS specification provides access to the SOAP message
    via SAAJ objects.  Accessing and manipulating these objects
    can be slow because they require transformations of internal
    message representations.  The new properties are introduced to
    allows customers faster access.
    
    In the Feature Pack for Web Services, the JAX-WS runtime is
    changed to support these new properties within the JAX-WS
    client programming model and within the JAX-WS handler model.
    
    APAR PK96816 corrects this same problem for the WebSphere
    Application Server V7.0.
    
    The fix for this APAR is currently targeted for
    inclusion in fix pack 6.1.0.27.  Please refer to
    the Recommended Updates page for delivery information:
    http://www.ibm.com/support/docview.wss?rs=180&uid=swg27004980
    

Temporary fix

Comments

APAR Information

  • APAR number

    PK84170

  • Reported component name

    WEBSERVIC FEATU

  • Reported component ID

    5724J0850

  • Reported release

    610

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2009-04-06

  • Closed date

    2009-05-11

  • Last modified date

    2009-09-23

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

    PK96816

Fix information

  • Fixed component name

    WEBSERVIC FEATU

  • Fixed component ID

    5724J0850

Applicable component levels

  • R610 PSY

       UP



Document information

More support for: WebSphere Application Server
General

Software version: 6.1

Reference #: PK84170

Modified date: 23 September 2009


Translate this page: