IBM Support

PI93822: EJB AUTO-LINK FAILS FOR JAVA:GLOBAL WITH BEANNAME PROVIDED

Fixes are available

9.0.0.8: WebSphere Application Server traditional V9.0 Fix Pack 8
8.5.5.14: WebSphere Application Server V8.5.5 Fix Pack 14
9.0.0.9: WebSphere Application Server traditional V9.0 Fix Pack 9
9.0.0.10: WebSphere Application Server traditional V9.0 Fix Pack 10
8.5.5.15: WebSphere Application Server V8.5.5 Fix Pack 15
9.0.0.11: WebSphere Application Server traditional V9.0 Fix Pack 11
9.0.5.0: WebSphere Application Server traditional Version 9.0.5 Refresh Pack
9.0.5.1: WebSphere Application Server traditional Version 9.0.5 Fix Pack 1
9.0.5.2: WebSphere Application Server traditional Version 9.0.5 Fix Pack 2
20.0.0.2: WebSphere Application Server Liberty 20.0.0.2
8.5.5.17: WebSphere Application Server V8.5.5 Fix Pack 17
9.0.5.3: WebSphere Application Server traditional Version 9.0.5 Fix Pack 3
20.0.0.3: WebSphere Application Server Liberty 20.0.0.3
20.0.0.4: WebSphere Application Server Liberty 20.0.0.4
20.0.0.5: WebSphere Application Server Liberty 20.0.0.5
9.0.5.4: WebSphere Application Server traditional Version 9.0.5 Fix Pack 4
9.0.5.5: WebSphere Application Server traditional Version 9.0.5 Fix Pack 5
WebSphere Application Server traditional 9.0.5.6
9.0.5.7: WebSphere Application Server traditional Version 9.0.5 Fix Pack 7
9.0.5.8: WebSphere Application Server traditional Version 9.0.5.8
8.5.5.20: WebSphere Application Server V8.5.5.20
8.5.5.18: WebSphere Application Server V8.5.5 Fix Pack 18
8.5.5.19: WebSphere Application Server V8.5.5 Fix Pack 19
9.0.5.9: WebSphere Application Server traditional Version 9.0.5.9
9.0.5.10: WebSphere Application Server traditional Version 9.0.5.10
8.5.5.16: WebSphere Application Server V8.5.5 Fix Pack 16
8.5.5.21: WebSphere Application Server V8.5.5.21
9.0.5.11: WebSphere Application Server traditional Version 9.0.5.11

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • When an EJB reference is defined in java:global and the option
    "Allow EJB reference targets to resolve automatically" is used
    to deploy the application, the application fails to start.
    
    The following is not working whilest compliant with the jee
    specification:
    @Stateless(name="FooBean")
    @Remote(Foo.class)
    @EJB(beanInterface=Foo.class, beanName="FooBean", name="java:
    global/env/foo")
    public class FooBean implements Foo {
    [...]
    
    during the deployment the following log statements appear:
    [21.11.17 23:40:05:660 MEZ] 000006d0 InjectionProc E
    CWNEN0044E: Es
    wurde keine Ressourcenreferenzenbindung für die
    Ressourcenreferenz java:
    global/env/foo gefunden, die für die Komponente java:global
    definiert
    ist.
    [21.11.17 23:40:05:661 MEZ] 000006d0 InjectionProc E
    CWNEN0011E: Die
    Injektionsengine konnte Bindungen für die Metadaten wegen des
    folgenden
    Fehlers nicht verarbeiten: CWNEN0044E: A resource reference
    binding
    could not be found for the following resource references [java:
    global/env/foo], defined for the java:global component.
    

Local fix

  • N/A
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  All users of IBM WebSphere Application      *
    *                  Server with Enterprise JavaBean (EJB)       *
    *                  applications                                *
    ****************************************************************
    * PROBLEM DESCRIPTION: CWNEN0044E occurs for EJB reference     *
    *                      defined in java:global                  *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    The error CWNEN0044E occurs for EJB references when a binding
    is not provided to link the reference to an EJB implementation.
    The option "Allow EJB reference targets to resolve
    automatically" may be selected during application deployment
    to request that the application server automatically link an
    EJB to the reference when a binding is not specified in
    ibm-ejb-jar-bnd.xml.
    This auto-link support will only link EJB references to beans
    that are defined in the same application as the reference. For
    EJB references declared in java:global, a binding is required
    since the reference could be to a bean declared in any
    installed application, not just the application where the
    reference is defined.
    However, if an EJB reference is declared in java:global, and
    the EJB reference clearly identifies a bean implementation in
    the same application, then the auto-link support should work,
    and not require a specific binding.
    An example of this scenario is as follows:
    @Stateless(name="FooBean")
    @Remote(Foo.class)
    @EJB(name="java:global/env/foo", beanInterface=Foo.class,
    beanName="FooBean")
    public class FooBean implements Foo {
    In this example, the beanName attribute clearly identifies the
    reference should be linked to the "FooBean" in the same
    application, and therefore the auto-link support should work
    without requiring a binding. Unfortunately, this scenario
    results in an CWNEN0044E error being logged and the appliation
    fails to start.
    

Problem conclusion

  • The EJB auto-link support that is enabled by selecting "Allow
    EJB reference targets to resolve automatically" has been
    changed to correctly link an EJB reference to a bean in the
    same application even when the reference is declared in
    java:global if the following are true:
    
    1 - the EJB reference provides the beanInterface and beanName
    attributes on the @EJB annotation or ejb-link element in
    ejb-jar.xml
    
    2 - no EJB reference with the same java:global name appears in
    other applications
    
    The fix for this APAR is currently targeted for inclusion in
    fix pack 9.0.0.8.  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

    PI93822

  • 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

    2018-02-14

  • Closed date

    2018-06-13

  • Last modified date

    2018-06-13

  • 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

  • R850 PSY

       UP

  • R900 PSY

       UP

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSEQTP","label":"WebSphere Application Server"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"9.0","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
04 May 2022