Uploaded image for project: 'Application Server 3  4  5 and 6'
  1. Application Server 3 4 5 and 6
  2. JBAS-7371

admin-console Seam initialization issues with "default" configuration

    XMLWordPrintable

Details

    Description

      something is wrong with the JBoss AS 5.1.0.GA distribution, using "default" configuration, and trying to access: http://127.0.0.1:8080/admin-console/ when I have my own application EAR that uses a newer version of Seam (2.1.2).

      I am using JBoss Tooling (JBIDE) to start the AS instance in debug mode on JDK6. It starts up fine enough, but the first access to the /admin-console/ yields the following stack trace. The web-app that is the admin-console seems to continue to remain deployed. So it is a lazy-Seam-initialization issue. The /admin-console/ web-app has not been modified in the distribution, but I do have an EAR project I am trying to develop which is using a different (newer) version of Seam than the one JBoss AS distributes within admin-console.war.

      But all the libraries my EAR uses are contained inside my EAR so this should make no difference (FWIW I am using Seam 2.1.2 in my app). It looks like admin-console.war uses Seam 2.1.0.SP1 this is inside the admin-console.war/WEB-INF/lib so should be isolated.

      If I remove my EAR from being deployed and restart the AS then /admin-console/ works.

      My EAR (that appears to break on JBoss AS) is really simple:

      ./jboss-seam-2.1.2.jar
      ./lib/
      ./lib/commons-beanutils-1.8.0-BETA.jar
      ./lib/commons-collections-3.2.1.jar
      ./lib/commons-digester-1.8.jar
      ./lib/commons-logging-1.1.1.jar
      ./lib/drools-api-5.0.1.jar
      ./lib/drools-core-5.0.1.jar
      ./lib/jboss-el-1.0_02.CR2.jar
      ./lib/joda-time-1.6.jar
      ./lib/richfaces-api-3.3.1.GA.jar
      ./lib/spring-2.5.6.SEC01.jar
      ./lib/spring-aspects-2.5.6.SEC01.jar
      ./META-INF
      ./META-INF/MANIFEST.MF
      ./mvel2-2.0.10.jar

      Here are the last few lines of the server startup (maybe they are of some use ?) They show the deployment of the /admin-console web-app and the lack of any exception during deployment to indicate a failure at that time.

      00:21:24,600 INFO [TomcatDeployment] deploy, ctxPath=/admin-console
      00:21:24,713 INFO [config] Initializing Mojarra (1.2_12-b01-FCS) for context '/admin-console'
      00:21:28,397 INFO [TomcatDeployment] deploy, ctxPath=/
      00:21:28,543 INFO [TomcatDeployment] deploy, ctxPath=/jmx-console
      00:21:28,748 INFO [Http11Protocol] Starting Coyote HTTP/1.1 on http-localhost%2F127.0.0.1-8080
      00:21:28,811 INFO [AjpProtocol] Starting Coyote AJP/1.3 on ajp-localhost%2F127.0.0.1-8009
      00:21:28,835 INFO [ServerImpl] JBoss (Microcontainer) [5.1.0.GA (build: SVNTag=JBoss_5_1_0_GA date=200905221634)] Started in 1m:12s:424ms

      Then upon first access of the webapp the URL http://127.0.0.1:8080/admin-console/ I get:

      .....START.....
      java.lang.RuntimeException: error while reading /WEB-INF/components.xml
      org.jboss.seam.init.Initialization.initComponentsFromXmlDocument(Initialization.java:221)
      org.jboss.seam.init.Initialization.create(Initialization.java:124)
      org.jboss.seam.servlet.SeamListener.contextInitialized(SeamListener.java:34)
      org.jboss.on.embedded.LazyStartupListener.initialize(LazyStartupListener.java:182)
      org.jboss.on.embedded.LazyStartupListener.requestInitialized(LazyStartupListener.java:240)
      org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
      org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
      org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
      org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
      org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
      org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
      org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
      org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
      org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
      org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
      java.lang.Thread.run(Thread.java:619)

      root cause

      java.lang.RuntimeException: Error loading element Identity with component name null and component class null
      org.jboss.seam.init.Initialization.installComponentsFromXmlElements(Initialization.java:342)
      org.jboss.seam.init.Initialization.initComponentsFromXmlDocument(Initialization.java:217)
      org.jboss.seam.init.Initialization.create(Initialization.java:124)
      org.jboss.seam.servlet.SeamListener.contextInitialized(SeamListener.java:34)
      org.jboss.on.embedded.LazyStartupListener.initialize(LazyStartupListener.java:182)
      org.jboss.on.embedded.LazyStartupListener.requestInitialized(LazyStartupListener.java:240)
      org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
      org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
      org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
      org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
      org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
      org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
      org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
      org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
      org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
      org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
      java.lang.Thread.run(Thread.java:619)
      ....END....

      Then upon subsequent access of the webapp the URL http://127.0.0.1:8080/admin-console/ I get:

      ....START....
      java.lang.NullPointerException
      org.jboss.seam.servlet.SeamFilter.getSortedFilters(SeamFilter.java:112)
      org.jboss.seam.servlet.SeamFilter.init(SeamFilter.java:93)
      org.jboss.on.embedded.LazyStartupFilter.init(LazyStartupFilter.java:104)
      org.jboss.on.embedded.LazyStartupFilter.doFilter(LazyStartupFilter.java:85)
      org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
      ....END....

      This problem is simply the filter assuming a something has been correctly/fully initialized when it hasn't. So this points at:

      • The first exception has failed to initialize something relating to global Seam configuration, but the global initialization status was not rolled back (since the subsequent HTTP request should have resulted in a repeat of the same error) or
      • The second exception should be checking for null on something that is allowed to remain unconfigured

      Those matters would be for Seam team to investigate?

      Attachments

        Activity

          People

            Unassigned Unassigned
            darryl.miles@dlmc.co.uk Darryl Miles (Inactive)
            Votes:
            1 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: