geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Jencks <david_jen...@yahoo.com>
Subject Re: Geroinmo + ActiveMQ + XMPP
Date Thu, 18 Feb 2010 17:16:52 GMT

On Feb 18, 2010, at 8:40 AM, Maan Najjar wrote:

> Hello,
>
> Thanks for your help!
>
> Since I'm not good with making geronimo plugins, I went with the  
> second approach and added activemq-xmpp dependency to activemq- 
> broker plugin and then rebuilt it. It complained later about some  
> dependencies when starting geronimo (javax.xml.bind/jaxb- 
> api ,javax.xml.stream/stax-api and javax.activation/activation), I  
> added them to the repository and then It worked great!.

glad its working, but you may want to exclude those dependencies from  
the new required dependencies since geronimo supplies these classes in  
different jars.  There is a slight chance that including the 2nd copy  
of the classes might introduce hard-to-understand class cast exceptions.

thanks
david jencks

>
> Thanks a lot  :)
> Maan Najjar
>
> On Thu, Feb 18, 2010 at 2:40 AM, David Jencks  
> <david_jencks@yahoo.com> wrote:
> I haven't tried this.... but I think it should work.  It should be a  
> lot easier in g. 3.0.
>
> I think you need to build another geronimo plugin that has the jars  
> you need for xmpp transport as dependencies and a gbean that sets up  
> the transport.  Make sure the broker plugin is also a parent.
>
> If the xmpp activemq classes are in a separate jar we aren't using  
> in 2.2, this is most of what you;ll need.  If they are included in  
> the broker, and just the underlying xmpp support jars are missing,  
> then you'll have to play around with more fine-grained classloader  
> configuration in the new plugin and use hidden-classes to make the  
> amq xmpp classes load from the new plugin.
>
> Alternatively, and probably easier, you can copy our amq broker  
> plugin and add the necessary dependencies for xmpp and rebuild it.
>
> This is kind of sketchy, let us know if you need more instructions.
>
> thanks
> david jencks
>
>
> On Feb 17, 2010, at 9:03 PM, Maan Najjar wrote:
>
> Hello,
>
> I've been trying to set XMPP transport connector for ActiveMQ in  
> Geronimo. What I did is modify var/activemq/conf/activemq.xml and  
> uncomment this line
>
> <transportConnector name="xmpp" uri="xmpp://${ServerHostname}: 
> ${61222 + ${PortOffset}}"/>
>
> However, I'm getting the following exception when geronimo tries to  
> load activemq-broker module
>
> Module 63/74 org.apache.geronimo.configs/activemq-broker/2.2/car
> 2010-02-17 23:59:27,595 ERROR [BrokerService] Failed to start  
> ActiveMQ JMS Message Broker. Reason: java.io.IOException: Transport  
> Connector could not be registered in JMX: Transport scheme NOT  
> recognized: [xmpp]
> java.io.IOException: Transport Connector could not be registered in  
> JMX: Transport scheme NOT recognized: [xmpp]
>    at  
> org 
> .apache 
> .activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:27)
>    at  
> org 
> .apache 
> .activemq 
> .broker.BrokerService.registerConnectorMBean(BrokerService.java:1546)
>    at  
> org 
> .apache 
> .activemq 
> .broker.BrokerService.startTransportConnector(BrokerService.java:1958)
>    at  
> org 
> .apache 
> .activemq.broker.BrokerService.startAllConnectors(BrokerService.java: 
> 1911)
>    at  
> org.apache.activemq.broker.BrokerService.start(BrokerService.java:471)
>    at  
> org 
> .apache 
> .geronimo 
> .activemq.BrokerServiceGBeanImpl.<init>(BrokerServiceGBeanImpl.java: 
> 104)
>    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native  
> Method)
>    at  
> sun 
> .reflect 
> .NativeConstructorAccessorImpl 
> .newInstance(NativeConstructorAccessorImpl.java:39)
>    at  
> sun 
> .reflect 
> .DelegatingConstructorAccessorImpl 
> .newInstance(DelegatingConstructorAccessorImpl.java:27)
>    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
>    at org.apache.xbean.recipe.ReflectionUtil 
> $ConstructorFactory.create(ReflectionUtil.java:952)
>    at  
> org 
> .apache.xbean.recipe.ObjectRecipe.internalCreate(ObjectRecipe.java: 
> 276)
>    at  
> org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:96)
>    at  
> org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:61)
>    at  
> org 
> .apache 
> .geronimo 
> .gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:911)
>    at  
> org 
> .apache 
> .geronimo 
> .gbean 
> .runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java: 
> 269)
>    at  
> org 
> .apache 
> .geronimo 
> .gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:103)
>    at  
> org 
> .apache 
> .geronimo 
> .gbean 
> .runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java: 
> 125)
>    at  
> org 
> .apache 
> .geronimo 
> .gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:539)
>    at  
> org 
> .apache 
> .geronimo 
> .kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:377)
>    at  
> org 
> .apache 
> .geronimo 
> .kernel 
> .config 
> .ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java: 
> 456)
>    at  
> org 
> .apache 
> .geronimo 
> .kernel 
> .config 
> .KernelConfigurationManager.start(KernelConfigurationManager.java:190)
>    at  
> org 
> .apache 
> .geronimo 
> .kernel 
> .config 
> .SimpleConfigurationManager 
> .startConfiguration(SimpleConfigurationManager.java:546)
>    at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown Source)
>    at  
> sun 
> .reflect 
> .DelegatingMethodAccessorImpl 
> .invoke(DelegatingMethodAccessorImpl.java:25)
>    at java.lang.reflect.Method.invoke(Method.java:597)
>    at  
> org 
> .apache 
> .geronimo 
> .gbean 
> .runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java: 
> 34)
>    at  
> org 
> .apache 
> .geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:130)
>    at  
> org 
> .apache 
> .geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:816)
>    at  
> org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java: 
> 57)
>    at  
> org 
> .apache 
> .geronimo 
> .kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35)
>    at  
> org 
> .apache 
> .geronimo 
> .kernel 
> .basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java: 
> 96)
>    at org.apache.geronimo.gbean.GBeanLifecycle$$EnhancerByCGLIB$ 
> $13c953f6.startConfiguration(<generated>)
>    at  
> org 
> .apache 
> .geronimo.system.main.EmbeddedDaemon.doStartup(EmbeddedDaemon.java: 
> 161)
>    at  
> org 
> .apache 
> .geronimo.system.main.EmbeddedDaemon.execute(EmbeddedDaemon.java:78)
>    at  
> org 
> .apache 
> .geronimo 
> .kernel 
> .util 
> .MainConfigurationBootstrapper 
> .main(MainConfigurationBootstrapper.java:45)
>    at  
> org.apache.geronimo.cli.AbstractCLI.executeMain(AbstractCLI.java:65)
>    at org.apache.geronimo.cli.daemon.DaemonCLI.main(DaemonCLI.java:30)
> Caused by: java.io.IOException: Transport scheme NOT recognized:  
> [xmpp]
>    at  
> org 
> .apache 
> .activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:27)
>    at  
> org 
> .apache 
> .activemq 
> .transport 
> .TransportFactory.findTransportFactory(TransportFactory.java:204)
>    at  
> org 
> .apache 
> .activemq.transport.TransportFactory.bind(TransportFactory.java:123)
>    at  
> org 
> .apache 
> .activemq 
> .broker 
> .TransportConnector.createTransportServer(TransportConnector.java:304)
>    at  
> org 
> .apache 
> .activemq 
> .broker.TransportConnector.getServer(TransportConnector.java:133)
>    at  
> org 
> .apache 
> .activemq 
> .broker 
> .TransportConnector.asManagedConnector(TransportConnector.java:96)
>    at  
> org 
> .apache 
> .activemq 
> .broker.BrokerService.registerConnectorMBean(BrokerService.java:1541)
>    ... 36 more
> Caused by: java.io.IOException: Could not find factory class for  
> resource: META-INF/services/org/apache/activemq/transport/xmpp
>    at  
> org 
> .apache 
> .activemq 
> .util.FactoryFinder.doFindFactoryProperies(FactoryFinder.java:92)
>    at  
> org 
> .apache.activemq.util.FactoryFinder.newInstance(FactoryFinder.java:52)
>    at  
> org 
> .apache.activemq.util.FactoryFinder.newInstance(FactoryFinder.java:42)
>    at  
> org 
> .apache 
> .activemq 
> .transport 
> .TransportFactory.findTransportFactory(TransportFactory.java:201)
>    ... 41 more
> 2010-02-17 23:59:29,626 ERROR [GBeanInstanceState] Error while  
> starting; GBean is now in the FAILED state:  
> abstractName="org.apache.geronimo.configs/activemq-broker/2.2/car? 
> ServiceModule=org.apache.geronimo.configs/activemq-broker/2.2/ 
> car,j2eeType=JMSServer,name=DefaultActiveMQBroker"
> java.io.IOException: Transport Connector could not be registered in  
> JMX: Transport scheme NOT recognized: [xmpp]
>    at  
> org 
> .apache 
> .activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:27)
>    at  
> org 
> .apache 
> .activemq 
> .broker.BrokerService.registerConnectorMBean(BrokerService.java:1546)
>    at  
> org 
> .apache 
> .activemq 
> .broker.BrokerService.startTransportConnector(BrokerService.java:1958)
>    at  
> org 
> .apache 
> .activemq.broker.BrokerService.startAllConnectors(BrokerService.java: 
> 1911)
>    at  
> org.apache.activemq.broker.BrokerService.start(BrokerService.java:471)
>    at  
> org 
> .apache 
> .geronimo 
> .activemq.BrokerServiceGBeanImpl.<init>(BrokerServiceGBeanImpl.java: 
> 104)
>    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native  
> Method)
>    at  
> sun 
> .reflect 
> .NativeConstructorAccessorImpl 
> .newInstance(NativeConstructorAccessorImpl.java:39)
>    at  
> sun 
> .reflect 
> .DelegatingConstructorAccessorImpl 
> .newInstance(DelegatingConstructorAccessorImpl.java:27)
>    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
>    at org.apache.xbean.recipe.ReflectionUtil 
> $ConstructorFactory.create(ReflectionUtil.java:952)
>    at  
> org 
> .apache.xbean.recipe.ObjectRecipe.internalCreate(ObjectRecipe.java: 
> 276)
>    at  
> org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:96)
>    at  
> org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:61)
>    at  
> org 
> .apache 
> .geronimo 
> .gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:911)
>    at  
> org 
> .apache 
> .geronimo 
> .gbean 
> .runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java: 
> 269)
>    at  
> org 
> .apache 
> .geronimo 
> .gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:103)
>    at  
> org 
> .apache 
> .geronimo 
> .gbean 
> .runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java: 
> 125)
>    at  
> org 
> .apache 
> .geronimo 
> .gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:539)
>    at  
> org 
> .apache 
> .geronimo 
> .kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:377)
>    at  
> org 
> .apache 
> .geronimo 
> .kernel 
> .config 
> .ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java: 
> 456)
>    at  
> org 
> .apache 
> .geronimo 
> .kernel 
> .config 
> .KernelConfigurationManager.start(KernelConfigurationManager.java:190)
>    at  
> org 
> .apache 
> .geronimo 
> .kernel 
> .config 
> .SimpleConfigurationManager 
> .startConfiguration(SimpleConfigurationManager.java:546)
>    at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown Source)
>    at  
> sun 
> .reflect 
> .DelegatingMethodAccessorImpl 
> .invoke(DelegatingMethodAccessorImpl.java:25)
>    at java.lang.reflect.Method.invoke(Method.java:597)
>    at  
> org 
> .apache 
> .geronimo 
> .gbean 
> .runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java: 
> 34)
>    at  
> org 
> .apache 
> .geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:130)
>    at  
> org 
> .apache 
> .geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:816)
>    at  
> org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java: 
> 57)
>    at  
> org 
> .apache 
> .geronimo 
> .kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35)
>    at  
> org 
> .apache 
> .geronimo 
> .kernel 
> .basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java: 
> 96)
>    at org.apache.geronimo.gbean.GBeanLifecycle$$EnhancerByCGLIB$ 
> $13c953f6.startConfiguration(<generated>)
>    at  
> org 
> .apache 
> .geronimo.system.main.EmbeddedDaemon.doStartup(EmbeddedDaemon.java: 
> 161)
>    at  
> org 
> .apache 
> .geronimo.system.main.EmbeddedDaemon.execute(EmbeddedDaemon.java:78)
>    at  
> org 
> .apache 
> .geronimo 
> .kernel 
> .util 
> .MainConfigurationBootstrapper 
> .main(MainConfigurationBootstrapper.java:45)
>    at  
> org.apache.geronimo.cli.AbstractCLI.executeMain(AbstractCLI.java:65)
>    at org.apache.geronimo.cli.daemon.DaemonCLI.main(DaemonCLI.java:30)
> Caused by: java.io.IOException: Transport scheme NOT recognized:  
> [xmpp]
>    at  
> org 
> .apache 
> .activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:27)
>    at  
> org 
> .apache 
> .activemq 
> .transport 
> .TransportFactory.findTransportFactory(TransportFactory.java:204)
>    at  
> org 
> .apache 
> .activemq.transport.TransportFactory.bind(TransportFactory.java:123)
>    at  
> org 
> .apache 
> .activemq 
> .broker 
> .TransportConnector.createTransportServer(TransportConnector.java:304)
>    at  
> org 
> .apache 
> .activemq 
> .broker.TransportConnector.getServer(TransportConnector.java:133)
>    at  
> org 
> .apache 
> .activemq 
> .broker 
> .TransportConnector.asManagedConnector(TransportConnector.java:96)
>    at  
> org 
> .apache 
> .activemq 
> .broker.BrokerService.registerConnectorMBean(BrokerService.java:1541)
>    ... 36 more
> Caused by: java.io.IOException: Could not find factory class for  
> resource: META-INF/services/org/apache/activemq/transport/xmpp
>    at  
> org 
> .apache 
> .activemq 
> .util.FactoryFinder.doFindFactoryProperies(FactoryFinder.java:92)
>    at  
> org 
> .apache.activemq.util.FactoryFinder.newInstance(FactoryFinder.java:52)
>    at  
> org 
> .apache.activemq.util.FactoryFinder.newInstance(FactoryFinder.java:42)
>    at  
> org 
> .apache 
> .activemq 
> .transport 
> .TransportFactory.findTransportFactory(TransportFactory.java:201)
>    ... 41 more
> Server Startup failed
>
>
>
> Apparently ActiveMQ-XMPP was not included in Geroinmo (it's in  
> optional libraries in activemq), Stomp transport-connector worked  
> however. It's really frustrating, I really need XMPP. I would  
> appreciate someone help, I'm using Geronimo 2.2
>
>
> Thanks
>
>
>
>


Mime
View raw message