Hi,
I'm trying to create a simple event listener, but it's having troubles
finding the eventSubscriptionService bean. My component-dao.xml file looks
like this:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd"
>
<context:annotation-config/>
<bean name="JmsQueueEventListener"
class="org.neoninc.opennms.JmsQueueEventListener" />
<bean id="JmsQueueEventListenerAdapter"
class="org.opennms.netmgt.model.events.AnnotationBasedEventListenerAdapter">
<property name="annotatedListener" ref="JmsQueueEventListener" />
<property name="eventSubscriptionService" ref="eventSubscriptionService"
/>
</bean>
</beans>
When it tries to create the JmsQueueEventListenerAdapter, it fails to
resolve the reference to the bean 'eventSubscriptionService'. I get the
following stack trace:
An error occurred while attempting to start the "OpenNMS:Name=Eventd"
service (class org.opennms.netmgt.eventd.jmx.Eventd). Shutting down and
exiting.
javax.management.RuntimeMBeanException:
org.springframework.beans.factory.access.BootstrapException: Unable to
return specified BeanFactory instance: factory key [eventDaemonContext],
from group with resource name [classpath*:beanRefContext.xml]; nested
exception is org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'eventDaemonContext' defined in URL
[jar:file:/opt/opennms/lib/opennms-services-1.8.7.jar!/beanRefContext.xml]:
Cannot resolve reference to bean 'commonContext' while setting constructor
argument; nested exception is
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'commonContext' defined in URL
[jar:file:/opt/opennms/lib/opennms-services-1.8.7.jar!/beanRefContext.xml]:
Cannot resolve reference to bean 'daemonContext' while setting constructor
argument; nested exception is
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'daemonContext' defined in URL
[jar:file:/opt/opennms/lib/opennms-services-1.8.7.jar!/beanRefContext.xml]:
Cannot resolve reference to bean 'daoContext' while setting constructor
argument; nested exception is
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'daoContext' defined in URL
[jar:file:/opt/opennms/lib/opennms-dao-1.8.7.jar!/beanRefContext.xml]:
Instantiation of bean failed; nested exception is
org.springframework.beans.BeanInstantiationException: Could not instantiate
bean class
[org.springframework.context.support.ClassPathXmlApplicationContext]:
Constructor threw exception; nested exception is
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'JmsQueueEventListenerAdapter' defined in URL
[jar:file:/opt/opennms/lib/opennms.neoninc.integration-0.1.0.BUILD-SNAPSHOT.
jar!/META-INF/opennms/component-dao.xml]: Cannot resolve reference to bean
'eventSubscriptionService' while setting bean property
'eventSubscriptionService'; nested exception is
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean
named 'eventSubscriptionService' is defined
at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.rethrow(DefaultMBeanSe
rverInterceptor.java:856)
at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.rethrowMaybeMBeanExcep
tion(DefaultMBeanServerInterceptor.java:869)
at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanSer
verInterceptor.java:838)
at
com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
at org.opennms.netmgt.vmmgr.Invoker.invoke(Invoker.java:338)
at org.opennms.netmgt.vmmgr.Invoker.invokeMethods(Invoker.java:261)
at org.opennms.netmgt.vmmgr.Starter.start(Starter.java:268)
at org.opennms.netmgt.vmmgr.Starter.startDaemon(Starter.java:136)
at org.opennms.netmgt.vmmgr.Controller.start(Controller.java:211)
at org.opennms.netmgt.vmmgr.Controller.main(Controller.java:183)
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:597)
at org.opennms.bootstrap.Bootstrap$3.run(Bootstrap.java:353)
at java.lang.Thread.run(Thread.java:662)
The Java class itself is very simple:
package org.neoninc.opennms;
import org.opennms.netmgt.EventConstants;
import org.opennms.netmgt.model.events.annotations.EventHandler;
import org.opennms.netmgt.model.events.annotations.EventListener;
import org.opennms.netmgt.xml.event.Event;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@EventListener(name="neon:JmsQueueEventListener")
public class JmsQueueEventListener {
Logger logger = LoggerFactory.getLogger(JmsQueueEventListener.class);
@EventHandler(uei=EventConstants.NODE_DOWN_EVENT_UEI)
public void onEvent(Event event) {
logger.debug("Handling onEvent om EventListener!!!");
logger.debug(event.getDescr());
}
}
Any ideas where I'm going wrong?
Thanks,
DJ Spiess
-----------------------------------------------------
DJ Spiess
Software Engineer
National Ecological Observatory Network (NEON)
5340 Airport Boulevard, Boulder, CO 80301
Telephone: (720) 746-4853
Fax: (720) 746-4860
www.neoninc.org
------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
Please read the OpenNMS Mailing List FAQ:
http://www.opennms.org/index.php/Mailing_List_FAQ
opennms-devel mailing list
To *unsubscribe* or change your subscription options, see the bottom of this
page:
https://lists.sourceforge.net/lists/listinfo/opennms-devel