You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Stephan Siano (JIRA)" <ji...@apache.org> on 2011/01/12 15:55:45 UTC

[jira] Updated: (AMQ-3132) Web Console fails on Equinox OSGi server

     [ https://issues.apache.org/jira/browse/AMQ-3132?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Stephan Siano updated AMQ-3132:
-------------------------------

    Component/s:     (was: JMX)

> Web Console fails on Equinox OSGi server
> ----------------------------------------
>
>                 Key: AMQ-3132
>                 URL: https://issues.apache.org/jira/browse/AMQ-3132
>             Project: ActiveMQ
>          Issue Type: Bug
>    Affects Versions: 5.4.2
>            Reporter: Stephan Siano
>
> I tried to run the activemq-web-console bundle on an equinox based OSGi runtime. Essentially I was following the description on the web console section of the http://activemq.apache.org/osgi-integration.html page. However when I try to access any of the pages, I get an exception:
> 15:09:30.736 WARN  [qtp1617610261-54] org.eclipse.jetty.util.log [Slf4jLog.java:50] - /activemqweb/index.jsp
> javax.el.ELException: Error reading 'brokerName' on type org.apache.activemq.web.RemoteJMXBrokerFacade
> 	at javax.el.BeanELResolver.getValue(BeanELResolver.java:66) ~[na:na]
> 	at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53) ~[na:na]
> 	at org.apache.el.parser.AstValue.getValue(AstValue.java:118) ~[na:na]
> 	at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186) ~[na:na]
> 	at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:925) ~[na:na]
> 	at org.apache.jsp.index_jsp._jspService(index_jsp.java:75) ~[na:na]
> 	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) ~[na:na]
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) ~[org.apache.geronimo.specs.geronimo-servlet_2.5_spec-1.1.1.jar:1.1.1]
> 	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374) ~[na:na]
> 	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342) ~[na:na]
> 	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267) ~[na:na]
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) ~[org.apache.geronimo.specs.geronimo-servlet_2.5_spec-1.1.1.jar:1.1.1]
> 	at org.ops4j.pax.web.jsp.JspServletWrapper$2.call(JspServletWrapper.java:132) ~[na:na]
> 	at org.ops4j.pax.web.jsp.JspServletWrapper$2.call(JspServletWrapper.java:127) ~[na:na]
> 	at org.ops4j.pax.swissbox.core.ContextClassLoaderUtils.doWithClassLoader(ContextClassLoaderUtils.java:60) ~[na:na]
> 	at org.ops4j.pax.web.jsp.JspServletWrapper.service(JspServletWrapper.java:124) ~[na:na]
> 	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:527) ~[na:na]
> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1216) ~[na:na]
> 	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:83) ~[spring-web-3.0.3.RELEASE.jar:3.0.3.RELEASE]
> 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) ~[spring-web-3.0.3.RELEASE.jar:3.0.3.RELEASE]
> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187) ~[na:na]
> 	at org.apache.activemq.web.SessionFilter.doFilter(SessionFilter.java:45) ~[activemq-web-5.4.2.jar:5.4.2]
> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187) ~[na:na]
> 	at org.apache.activemq.web.filter.ApplicationContextFilter.doFilter(ApplicationContextFilter.java:81) ~[bundlefile:5.4.2]
> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187) ~[na:na]
> 	at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118) ~[sitemesh-2.2.1.jar:na]
> 	at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52) ~[sitemesh-2.2.1.jar:na]
> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187) ~[na:na]
> 	at org.ops4j.pax.web.service.internal.WelcomeFilesFilter.doFilter(WelcomeFilesFilter.java:169) ~[na:na]
> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187) ~[na:na]
> 	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:421) ~[na:na]
> 	at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:65) ~[na:na]
> 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119) ~[na:na]
> 	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:493) ~[na:na]
> 	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:225) ~[na:na]
> 	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:930) ~[na:na]
> 	at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:116) ~[na:na]
> 	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:358) ~[na:na]
> 	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:183) ~[na:na]
> 	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:866) ~[na:na]
> 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) ~[na:na]
> 	at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:72) ~[na:na]
> 	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:113) ~[na:na]
> 	at org.eclipse.jetty.server.Server.handle(Server.java:351) ~[na:na]
> 	at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:594) ~[na:na]
> 	at org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:1042) ~[na:na]
> 	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:549) ~[na:na]
> 	at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:211) ~[na:na]
> 	at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:424) ~[na:na]
> 	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:506) ~[na:na]
> 	at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:436) ~[na:na]
> 	at java.lang.Thread.run(Unknown Source) ~[na:1.6.0_22]
> Caused by: java.lang.RuntimeException: java.io.IOException: Failed to retrieve RMIServer stub: javax.naming.CommunicationException [Root exception is java.rmi.UnmarshalException: error unmarshalling return; nested exception is: 
> 	java.lang.ClassNotFoundException: javax.management.remote.rmi.RMIServerImpl_Stub (no security manager: RMI class loader disabled)]
> 	at org.apache.activemq.web.RemoteJMXBrokerFacade.createConnection(RemoteJMXBrokerFacade.java:165) ~[activemq-web-5.4.2.jar:5.4.2]
> 	at org.apache.activemq.web.RemoteJMXBrokerFacade.getMBeanServerConnection(RemoteJMXBrokerFacade.java:114) ~[activemq-web-5.4.2.jar:5.4.2]
> 	at org.apache.activemq.web.RemoteJMXBrokerFacade.getBrokerAdmin(RemoteJMXBrokerFacade.java:88) ~[activemq-web-5.4.2.jar:5.4.2]
> 	at org.apache.activemq.web.RemoteJMXBrokerFacade.getBrokerName(RemoteJMXBrokerFacade.java:101) ~[activemq-web-5.4.2.jar:5.4.2]
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:na]
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:na]
> 	at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.6.0_22]
> 	at javax.el.BeanELResolver.getValue(BeanELResolver.java:62) ~[na:na]
> 	... 51 common frames omitted
> Caused by: java.io.IOException: Failed to retrieve RMIServer stub: javax.naming.CommunicationException [Root exception is java.rmi.UnmarshalException: error unmarshalling return; nested exception is: 
> 	java.lang.ClassNotFoundException: javax.management.remote.rmi.RMIServerImpl_Stub (no security manager: RMI class loader disabled)]
> 	at javax.management.remote.rmi.RMIConnector.connect(Unknown Source) ~[na:na]
> 	at javax.management.remote.JMXConnectorFactory.connect(Unknown Source) ~[na:1.6.0_22]
> 	at org.apache.activemq.web.RemoteJMXBrokerFacade.createConnection(RemoteJMXBrokerFacade.java:146) ~[activemq-web-5.4.2.jar:5.4.2]
> 	... 59 common frames omitted
> Caused by: javax.naming.CommunicationException: null
> 	at com.sun.jndi.rmi.registry.RegistryContext.lookup(Unknown Source) ~[na:1.6.0_22]
> 	at com.sun.jndi.toolkit.url.GenericURLContext.lookup(Unknown Source) ~[na:1.6.0_22]
> 	at javax.naming.InitialContext.lookup(Unknown Source) ~[na:1.6.0_22]
> 	at javax.management.remote.rmi.RMIConnector.findRMIServerJNDI(Unknown Source) ~[na:na]
> 	at javax.management.remote.rmi.RMIConnector.findRMIServer(Unknown Source) ~[na:na]
> 	... 62 common frames omitted
> Caused by: java.rmi.UnmarshalException: error unmarshalling return; nested exception is: 
> 	java.lang.ClassNotFoundException: javax.management.remote.rmi.RMIServerImpl_Stub (no security manager: RMI class loader disabled)
> 	at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source) ~[na:na]
> 	... 67 common frames omitted
> Caused by: java.lang.ClassNotFoundException: javax.management.remote.rmi.RMIServerImpl_Stub (no security manager: RMI class loader disabled)
> 	at sun.rmi.server.LoaderHandler.loadClass(Unknown Source) ~[na:na]
> 	at sun.rmi.server.LoaderHandler.loadClass(Unknown Source) ~[na:na]
> 	at java.rmi.server.RMIClassLoader$2.loadClass(Unknown Source) ~[na:1.6.0_22]
> 	at java.rmi.server.RMIClassLoader.loadClass(Unknown Source) ~[na:1.6.0_22]
> 	at sun.rmi.server.MarshalInputStream.resolveClass(Unknown Source) ~[na:na]
> 	at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source) ~[na:1.6.0_22]
> 	at java.io.ObjectInputStream.readClassDesc(Unknown Source) ~[na:1.6.0_22]
> 	at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) ~[na:1.6.0_22]
> 	at java.io.ObjectInputStream.readObject0(Unknown Source) ~[na:1.6.0_22]
> 	at java.io.ObjectInputStream.readObject(Unknown Source) ~[na:1.6.0_22]
> 	... 68 common frames omitted
> This exception essentially says that the RMIServerImpl_Stub from the javax.management.remote.rmi package (this is from the JRE) is not available to the bundle, which is not so surprising because the bundle does not import that package.
> I have also tested this with karaf and it works there, though I have no clue why it works, probably it is using the RMI class loader which is probably unwanted for a JDK provided class.
> As a workaround I added javax.management.remote.rmi to bootdelegation and it works now, however in my opinion this should be added to the manifest of the war file (this is defined in activemq-web-console/pom.xml).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.