IBM Support

PI80165: JAX-RS 2.0 OPTIONS METHODS ARE NOT INVOKED WHEN USED IN SUB-RESOURCE LOCATOR CLASSES.

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • If a sub-resource locator class defines a method with the
    @OPTIONS
    annotation, it will not be invoked.  Instead, the most likely
    result
    will be a "404 Not Found" response.
    
    For example, suppose you have a resource method like this:
    
    @Path("/myRootUri")
    public class MyRootResource {
        @Path("/sub")
        public MySubResource sub() {
            return new MySubResource();
        }
    }
    
    and a sub-resource locator class like below:
    
    public class MySubResource {
        @OPTIONS
        public Response options() {
            return Response.ok("...").build();
        }
    
        @GET
        public Response get() {
            return Response.ok("...").build();
        }
    }
    
    Invoking /myRootUri/sub with a GET request will return the
    expected 200
    response, but invoking the same URI with an OPTIONS request
    will get an
    unexpected 404 response.
    

Local fix

  • N/A
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  All users of IBM WebSphere Application      *
    *                  Server                                      *
    ****************************************************************
    * PROBLEM DESCRIPTION: JAX-RS 2.0 OPTIONS METHODS ARE NOT      *
    *                      INVOKED WHEN USED IN SUB-RESOURCE       *
    *                      LOCATOR CLASSES.                        *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    If a sub-resource locator class defines a method with the
    @OPTIONS
    annotation, it will not be invoked.  Instead, the most likely
    result
    will be a "404 Not Found" response.
    For example, suppose you have a resource method like this:
    @Path("/myRootUri")
    public class MyRootResource {
    @Path("/sub")
    public MySubResource sub() {
    return new MySubResource();
    }
    }
    and a sub-resource locator class like below:
    public class MySubResource {
    @OPTIONS
    public Response options() {
    return Response.ok("...").build();
    }
    @GET
    public Response get() {
    return Response.ok("...").build();
    }
    }
    Invoking /myRootUri/sub with a GET request will return the
    expected 200
    response, but invoking the same URI with an OPTIONS request
    will get an
    unexpected 404 response.
    

Problem conclusion

  • The fix for this APAR ensures that sub-resource locator
    classes are correctly scanned for @OPTIONS annotations.  If a
    method exists that matches the user's URI, then it will be
    invoked.  If not, then the normal return with a list of
    applicable HTTP methods for that URI will be returned.
    
    The fix for this APAR is currently targeted for inclusion in
    fix pack 9.0.0.5.  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

    PI80165

  • Reported component name

    WEBS APP SERV N

  • Reported component ID

    5724H8800

  • Reported release

    900

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2017-04-18

  • Closed date

    2017-06-26

  • Last modified date

    2017-06-26

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

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

Fix information

  • Fixed component name

    WEBS APP SERV N

  • Fixed component ID

    5724H8800

Applicable component levels

  • R900 PSY

       UP

[{"Business Unit":{"code":"BU053","label":"Cloud \u0026 Data Platform"},"Product":{"code":"SSEQTP","label":"WebSphere Application Server"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"900","Line of Business":{"code":"LOB36","label":"IBM Automation"}}]

Document Information

Modified date:
19 October 2021