[
https://jira.jboss.org/jira/browse/JBAS-7371?page=com.atlassian.jira.plug...
]
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