[jboss-jira] [JBoss JIRA] Commented: (JBAS-7371) admin-console Seam initialization issues with "default" configuration
Darryl Miles (JIRA)
jira-events at lists.jboss.org
Thu Oct 15 14:50:06 EDT 2009
[ https://jira.jboss.org/jira/browse/JBAS-7371?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12490091#action_12490091 ]
Darryl Miles commented on JBAS-7371:
------------------------------------
To update this bug report with understanding from IRC #seam.
Part of this bug maybe due to the jboss-5.1.0.GA/server/default/deploy/admin-console.war/WEB-INF/jboss-web.xml configuration directives just not working. My interpretation of this file is that the /admin-console/ WAR application should be isolated from any other kind of deployment on the AS (including my own application EAR).
The issue maybe:
* The syntax of the jboss-web.xml descriptor has changed (since an older version) and the /admin-console.war/ has not been updated for JBoss 5 ? (It would be really nice to see some documentation for all JBoss descriptors to make it into the documentation, then at least I can do the work of verifying the syntax and expected usage if I knew what all the possible features/value could be, http://www.jboss.org/community/wiki/classloadingconfiguration has been cited as a documentation resource but it just reads as a "brain dump" or "tid bit" not a hard contract of what the AS can/will/intends to supply).
* The features that /admin-console.war/ are asking of the class-loader / container are just not yet implemented for JBoss 5 standalone WARs, but they intend to be soon ? (so this bug report is about getting that support implemented)
* The component maintainer for /admin-console.war/ incorrectly thinks that class-loader isolation is possible/planned for JBoss 5 standalone WARs ? (so it never worked this way, never was a feature, not planned to be, so via what other mechanism can we achieve the required isolation, the issue is /admin-console.war/ comes bundled with a specific version of Seam, the purpose of a JBoss AS runtime instance is to deploy "customer specific applications" that is always the priority, the "JBoss Infrastructure Applications" (such as /admin-console.war/) that come bundled with it should never interfere with that goal and be available to the widest audience (i.e. void of compatibility-library-version hell).
Here is the file "jboss-5.1.0.GA/server/default/deploy/admin-console.war/WEB-INF/jboss-web.xml" as-is in 5.1.0 just in case it is changed before someone gets to look at this report.
.....BEGIN.....
<!DOCTYPE jboss-web PUBLIC
"-//JBoss//DTD Web Application 5.0//EN"
"http://www.jboss.org/j2ee/dtd/jboss-web_5_0.dtd">
<!--
~ Embedded Jopr Project
~ Copyright (C) 2006-2009 Red Hat, Inc.
~ All rights reserved.
~
~ This program is free software; you can redistribute it and/or modify
~ it under the terms of the GNU Lesser General Public License as
~ published by the Free Software Foundation; either version 2.1 of
~ the License, or (at your option) any later version.
~
~ This program is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
~ Lesser General Public License for more details.
~
~ You should have received a copy of the GNU Lesser General Public
~ License along with this program; if not, write to the Free Software
~ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-->
<jboss-web>
<class-loading>
<loader-repository>
org.jboss.on:loader=embedded
<loader-repository-config>java2ParentDelegation=false</loader-repository-config>
</loader-repository>
</class-loading>
<security-domain>java:/jaas/jmx-console</security-domain>
<context-root>admin-console</context-root>
</jboss-web>
.....END.....
> admin-console Seam initialization issues with "default" configuration
> ---------------------------------------------------------------------
>
> Key: JBAS-7371
> URL: https://jira.jboss.org/jira/browse/JBAS-7371
> Project: JBoss Application Server
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: JMX/Web Console, Management services
> Affects Versions: JBossAS-5.1.0.GA
> Environment: JDK6
> Reporter: Darryl Miles
> Assignee: Darran Lofthouse
>
> 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?
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list