Uploaded image for project: 'Application Server 7'
  1. Application Server 7
  2. AS7-4240

NameNotFoundException thrown when trying to read java:*/env context in Servlet container.

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • 7.1.2.Final (EAP)
    • 7.1.1.Final
    • Naming
    • None
    • Compatibility/Configuration

    Description

      We have many J2EE 1.4 apps that need to be migrated from Oracle Application Server

      These applications rely on configuration using Environment Entries

      Most of the answers to issues I have read indicate that this is done using jboss-web.xml but this is not an acceptable solutin as it requires repackaging of the deployment artifact for different servers and different environments and is therefor contrary to the spirit (and I believe the letter) of the JavaEE spec.

      The documentation on this capability is either hidden or missing.

      I was tasked with working out how to use the JBOSS tools to configure these values and have been unable to do so.

      I modified the quickstart helloworld example to accept a value using the @Resource annotation and attempted to set this value using jboss-cli.

      After several attempts to guess how to do this I modified the servlet to walk down the context tree.

      This servlet throws a NameNotFoundException when trying to list the bindings at:

      • java:comp/env
      • java:app/env
      • java:module/env

      I have written the servlet to perform this walk in the following contexts:

      • Ithe initial context
      • java:
      • java:jboss
      • java:comp
      • java:module
      • java:app
      • java:global

      java:global seems to be able to accept values added using jboss-cli (not surprising)

      java:comp, java:module and java:app seem to return some of the expected values (eg ModuleName and AppName) but throw the exception when trying to list entries under */env

      The initial context and java: seem to display the entries added through jboss-cli

      Adding a Deployment descriptor (web.xml), that provides values for these entries, results in no entries that are visible through jboss-cli or any of the contexts listed in the servlet.

      I then ran the following command through jboss-cli and restarted the app
      /profile=full/subsystem=naming/binding=\/java\:app\/jboss-as-helloworld-ear\/env\/GREETING_TEXT:add(binding-type="simple",value="RE")
      This resulted in the same NameNotFoundException being thrown at java:app/env when walking the initial context as has been thrown all along when listing env in java:app
      It also resulted in java:app appearing in the java: context but being empty.

      Prior to running the add command, java:app did not appear in the initial context or java: context at all.

      I then ran the following command through jboss-cli and restarted the app
      /profile=full/subsystem=naming/binding=\/java\:module\/jboss-as-helloworld-ear\/jboss-as-helloworld\/env\/GREETING_TEXT:add(binding-type="simple",value="SJM")
      This resulted in the same NameNotFoundException being thrown at java:module/env when walking the initial context as has been thrown all along when listing env in java:module
      It also resulted in java:module appearing in the java: context but being empty.

      Prior to running the add command, java:module did not appear in the initial context or java: context at all.

      My conclusion is that my commands in jboss-cli may be the appropriate ones to add the correct entries but that the servlet cannot reach the java:module/env or java:app/env contexts that should be available to it according to the javaEE6 spec.

      Attachments

        Issue Links

          Activity

            People

              sdouglas1@redhat.com Stuart Douglas
              rob.edgecombe Robert Edgecombe (Inactive)
              Votes:
              1 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: