On Fri, Oct 10, 2008 at 8:53 AM, Eddie Yee <[EMAIL PROTECTED]> wrote:
> Hi,
> I'm in the middle of trying to secure the web console for AMQ5.1.  I've done 
> the following, but am getting an error when trying to start AMQ:
>
> In conf/activemq.xml
>
>    <jetty xmlns="http://mortbay.com/schemas/jetty/1.0";>      <Set 
> name="UserRealms">        <Array type="org.mortbay.jetty.security.UserRealm"> 
>          <Item>            <New 
> class="org.mortbay.jetty.security.HashUserRealm">              <Set 
> name="name">ActiveMQ</Set>              <Set 
> name="config">/fs/activemq/app-a/apache-activemq-5.1.0/conf/amqrealm.properties</Set>
>                </New>             </Item>           </Array>         </Set>
>        <connectors>            <nioConnector port="8161"/>        
> </connectors>
>        <handlers>            <webAppContext contextPath="/admin" 
> resourceBase="${activemq.base}/webapps/admin" logUrlOnStart="true"/>          
>   <webAppContext contextPath="/demo" 
> resourceBase="${activemq.base}/webapps/demo" logUrlOnStart="true"/>           
>  <webAppContext contextPath="/fileserver" 
> resourceBase="${activemq.base}/webapps/fileserver" logUrlOnStart="true"/>     
>    </handlers>    </jetty>
>
> In webapps/admin/WEB-INF/web.xml:
>  .....
>  ....
>  <description>    Apache ActiveMQ Web Console  </description>  
> <display-name>ActiveMQ Console</display-name>
>  <security-constraint>    <web-resource-collection>      
> <web-resource-name>Web Console</web-resource-name>      
> <url-pattern>/*</url-pattern>    </web-resource-collection>    
> <auth-constraint>      <role-name>admins</role-name>    </auth-constraint>  
> </security-constraint>
>  <login-config>    <auth-method>BASIC</auth-method>    
> <realm-name>ActiveMQ</realm-name>  </login-config>
>
>
> In conf/amqrealm.properties
>    myAdmin: secret,admins
>
>
> When I try to start activemq, I get the following error:
>
> ERROR: java.lang.RuntimeException: Failed to execute start task. Reason: 
> org.springframework.beans.factory.BeanDefinitionStoreException: Unrecognized 
> xbean element mapping: Array in namespace 
> http://mortbay.com/schemas/jetty/1.0java.lang.RuntimeException: Failed to 
> execute start task. Reason: 
> org.springframework.beans.factory.BeanDefinitionStoreException: Unrecognized 
> xbean element mapping: Array in namespace 
> http://mortbay.com/schemas/jetty/1.0        at 
> org.apache.activemq.console.command.StartCommand.runTask(StartCommand.java:98)
>         at 
> org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57)
>         at 
> org.apache.activemq.console.command.ShellCommand.runTask(ShellCommand.java:129)
>         at 
> org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57)
>         at 
> org.apache.activemq.console.command.ShellCommand.main(ShellCommand.java:79)   
>      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)        at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
>        at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:585)        at 
> org.apache.activemq.console.Main.runTaskClass(Main.java:222)        at 
> org.apache.activemq.console.Main.main(Main.java:106)Caused by: 
> org.springframework.beans.factory.BeanDefinitionStoreException: Unrecognized 
> xbean element mapping: Array in namespace 
> http://mortbay.com/schemas/jetty/1.0        at 
> org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parseBeanFromExtensionElement(XBeanNamespaceHandler.java:266)
>         at 
> org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parse(XBeanNamespaceHandler.java:157)
>         at 
> org.apache.xbean.spring.context.v2.XBeanNamespaceHandler.parse(XBeanNamespaceHandler.java:49)
>         at 
> org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1246)
>         at 
> org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1236)
>         at 
> org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parseChildExtensionBean(XBeanNamespaceHandler.java:756)
>         at 
> org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parseNestedPropertyViaIntrospection(XBeanNamespaceHandler.java:592)
>         at 
> org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.tryParseNestedPropertyViaIntrospection(XBeanNamespaceHandler.java:561)
>         at 
> org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.addNestedPropertyElements(XBeanNamespaceHandler.java:528)
>         at 
> org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parseBeanFromExtensionElement(XBeanNamespaceHandler.java:219)
>         at 
> org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parseBeanFromExtensionElement(XBeanNamespaceHandler.java:264)
>         at 
> org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parse(XBeanNamespaceHandler.java:157)
>         at 
> org.apache.xbean.spring.context.v2.XBeanNamespaceHandler.parse(XBeanNamespaceHandler.java:49)
>         at 
> org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1246)
>         at 
> org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1236)
>         at 
> org.apache.xbean.spring.context.v2.XBeanBeanDefinitionDocumentReader.parseBeanDefinitions(XBeanBeanDefinitionDocumentReader.java:84)
>         at 
> org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:92)
>         at 
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:488)
>         at 
> org.apache.xbean.spring.context.v2.XBeanXmlBeanDefinitionReader.registerBeanDefinitions(XBeanXmlBeanDefinitionReader.java:79)
>         at 
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:383)
>         at 
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:327)
>         at 
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:295)
>         at 
> org.apache.xbean.spring.context.ResourceXmlApplicationContext.loadBeanDefinitions(ResourceXmlApplicationContext.java:111)
>         at 
> org.apache.xbean.spring.context.ResourceXmlApplicationContext.loadBeanDefinitions(ResourceXmlApplicationContext.java:104)
>         at 
> org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:97)
>         at 
> org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:411)
>         at 
> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:338)
>         at 
> org.apache.xbean.spring.context.ResourceXmlApplicationContext.<init>(ResourceXmlApplicationContext.java:64)
>         at 
> org.apache.xbean.spring.context.ResourceXmlApplicationContext.<init>(ResourceXmlApplicationContext.java:52)
>         at 
> org.apache.activemq.xbean.XBeanBrokerFactory.createApplicationContext(XBeanBrokerFactory.java:96)
>         at 
> org.apache.activemq.xbean.XBeanBrokerFactory.createBroker(XBeanBrokerFactory.java:52)
>         at 
> org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:71)  
>       at 
> org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:54)  
>       at 
> org.apache.activemq.console.command.StartCommand.startBroker(StartCommand.java:111)
>         at 
> org.apache.activemq.console.command.StartCommand.runTask(StartCommand.java:73)
>         ... 10 moreERROR: java.lang.Exception: 
> org.springframework.beans.factory.BeanDefinitionStoreException: Unrecognized 
> xbean element mapping: Array in namespace 
> http://mortbay.com/schemas/jetty/1.0java.lang.Exception: 
> org.springframework.beans.factory.BeanDefinitionStoreException: Unrecognized 
> xbean element mapping: Array in namespace 
> http://mortbay.com/schemas/jetty/1.0        at 
> org.apache.activemq.console.command.StartCommand.runTask(StartCommand.java:99)
>         at 
> org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57)
>         at 
> org.apache.activemq.console.command.ShellCommand.runTask(ShellCommand.java:129)
>         at 
> org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57)
>         at 
> org.apache.activemq.console.command.ShellCommand.main(ShellCommand.java:79)   
>      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)        at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
>        at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:585)        at 
> org.apache.activemq.console.Main.runTaskClass(Main.java:222)        at 
> org.apache.activemq.console.Main.main(Main.java:106)Caused by: 
> org.springframework.beans.factory.BeanDefinitionStoreException: Unrecognized 
> xbean element mapping: Array in namespace 
> http://mortbay.com/schemas/jetty/1.0        at 
> org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parseBeanFromExtensionElement(XBeanNamespaceHandler.java:266)
>         at 
> org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parse(XBeanNamespaceHandler.java:157)
>         at 
> org.apache.xbean.spring.context.v2.XBeanNamespaceHandler.parse(XBeanNamespaceHandler.java:49)
>         at 
> org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1246)
>         at 
> org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1236)
>         at 
> org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parseChildExtensionBean(XBeanNamespaceHandler.java:756)
>         at 
> org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parseNestedPropertyViaIntrospection(XBeanNamespaceHandler.java:592)
>         at 
> org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.tryParseNestedPropertyViaIntrospection(XBeanNamespaceHandler.java:561)
>         at 
> org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.addNestedPropertyElements(XBeanNamespaceHandler.java:528)
>         at 
> org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parseBeanFromExtensionElement(XBeanNamespaceHandler.java:219)
>         at 
> org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parseBeanFromExtensionElement(XBeanNamespaceHandler.java:264)
>         at 
> org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parse(XBeanNamespaceHandler.java:157)
>         at 
> org.apache.xbean.spring.context.v2.XBeanNamespaceHandler.parse(XBeanNamespaceHandler.java:49)
>         at 
> org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1246)
>         at 
> org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1236)
>         at 
> org.apache.xbean.spring.context.v2.XBeanBeanDefinitionDocumentReader.parseBeanDefinitions(XBeanBeanDefinitionDocumentReader.java:84)
>         at 
> org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:92)
>         at 
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:488)
>         at 
> org.apache.xbean.spring.context.v2.XBeanXmlBeanDefinitionReader.registerBeanDefinitions(XBeanXmlBeanDefinitionReader.java:79)
>         at 
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:383)
>         at 
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:327)
>         at 
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:295)
>         at 
> org.apache.xbean.spring.context.ResourceXmlApplicationContext.loadBeanDefinitions(ResourceXmlApplicationContext.java:111)
>         at 
> org.apache.xbean.spring.context.ResourceXmlApplicationContext.loadBeanDefinitions(ResourceXmlApplicationContext.java:104)
>         at 
> org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:97)
>         at 
> org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:411)
>         at 
> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:338)
>         at 
> org.apache.xbean.spring.context.ResourceXmlApplicationContext.<init>(ResourceXmlApplicationContext.java:64)
>         at 
> org.apache.xbean.spring.context.ResourceXmlApplicationContext.<init>(ResourceXmlApplicationContext.java:52)
>         at 
> org.apache.activemq.xbean.XBeanBrokerFactory.createApplicationContext(XBeanBrokerFactory.java:96)
>         at 
> org.apache.activemq.xbean.XBeanBrokerFactory.createBroker(XBeanBrokerFactory.java:52)
>         at 
> org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:71)  
>       at 
> org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:54)  
>       at 
> org.apache.activemq.console.command.StartCommand.startBroker(StartCommand.java:111)
>         at 
> org.apache.activemq.console.command.StartCommand.runTask(StartCommand.java:73)
>         ... 10 more
>
> Anybody have an idea what I may be doing wrong?

Yeah, you're trying to use the following Jetty-specific XML in the
configuration:

 <Set name="UserRealms">        <Array
type="org.mortbay.jetty.security.UserRealm">          <Item>
 <New class="org.mortbay.jetty.security.HashUserRealm">
<Set name="name">ActiveMQ</Set>              <Set
name="config">/fs/activemq/app-a/apache-activemq-5.1.0/conf/amqrealm.properties</Set>
              </New>             </Item>           </Array>
</Set>

XBean and Spring don't know how to handle this flavor of XML. When
you're configuring Jetty inside of ActiveMQ, because ActiveMQ is
configured with XBean and Spring, you must the XBean or Spring style
of XML. Take a look at the Jetty configuration available here instead:

http://activemq.apache.org/user-submitted-configurations.html

Bruce
-- 
perl -e 'print unpack("u30","D0G)[EMAIL 
PROTECTED]&5R\"F)R=6-E+G-N>61E<D\!G;6%I;\"YC;VT*"
);'

Apache ActiveMQ - http://activemq.org/
Apache Camel - http://activemq.org/camel/
Apache ServiceMix - http://servicemix.org/

Blog: http://bruceblog.org/

Reply via email to