dropDownMenu JBoss ResourceNotFoundException probably classl
lucasam Jan 10, 2008 2:59 PMMy app has the following scenario:
Two web apps deployed in the same ear in a JBoss 4.2.1
These two apps shares many libs including richfaces libs
It is important to me to deploy it as:
myapp.ear
-web-module1.war
-web-module2.war
-lib
I want to put all libs on the myapp.ear/lib directory.
In both apps I have a dropDownMenu just like in example documentation
I start a new JBoss instance and access the web-module1 context at first. The menu works fine on this context, but when I access the second context web-module2 the Menu doesn't show the arrow(sub menu reference) and prints an exception on the container
If I start JBoss again and access the web-module2 in first place the behavior becames opposite and the dropDownMenu on the web-module2 works and the other raises exception on container log.
The dropDownMenu code is the same as the example documentation
<h:form id="menu"> <rich:toolBar id="menuToolBar" itemSeparator="none"> <rich:dropDownMenu value="File"> <rich:menuItem submitMode="ajax" value="New" action="#{menuCtrl.sair}"> </rich:menuItem> <rich:menuItem submitMode="ajax" value="Open" action="#{menuCtrl.sair}"/> <rich:menuGroup value="Save As..."> <rich:menuItem submitMode="ajax" value="Text File" action="#{menuCtrl.sair}"/> <rich:menuItem submitMode="ajax" value="PDF File" action="#{menuCtrl.sair}"/> </rich:menuGroup> <rich:menuItem submitMode="ajax" value="Close" action="#{menuCtrl.sair}"/> <rich:menuSeparator id="menuSeparator11"/> <rich:menuItem submitMode="ajax" value="Exit" action="#{menuCtrl.sair}"/> </rich:dropDownMenu> </rich:toolBar> </h:form>
The exception raised in container is
org.ajax4jsf.resource.ResourceNotFoundException: Resource not registered : org.richfaces.renderkit.html.images.MenuNodeImage at org.ajax4jsf.resource.ResourceBuilderImpl.getResource(ResourceBuilderImpl.java:393) at org.ajax4jsf.resource.ResourceBuilderImpl.getResourceForKey(ResourceBuilderImpl.java:337) at org.ajax4jsf.resource.InternetResourceService.serviceResource(InternetResourceService.java:155) at org.ajax4jsf.resource.InternetResourceService.serviceResource(InternetResourceService.java:144) at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:265) at sun.reflect.GeneratedMethodAccessor125.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:244) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAsPrivileged(Subject.java:517) at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:276) at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:218) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230) at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:56) at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:189) at java.security.AccessController.doPrivileged(Native Method) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185) at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147) at sun.reflect.GeneratedMethodAccessor123.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:244) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAsPrivileged(Subject.java:517) at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:276) at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:218) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230) at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:56) at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:189) at java.security.AccessController.doPrivileged(Native Method) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:244) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAsPrivileged(Subject.java:517) at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:276) at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:218) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230) at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:56) at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:189) at java.security.AccessController.doPrivileged(Native Method) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104) at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Thread.java:619)
The only incorrect behavior is the exception on container and the missing arrow on container.
When I move libs from myapp.ear/lib to myapp.ear/web-moduleX.war/WEB-INF/lib it works fine, but, for other reasons it is a bad deploy choice for me
It seems that some static variable is messing with classloader.
Someone can help me? It is a bug? Anyone can solve?