I'm attempting to try the WS-Notification example where I have a producer of messages (RSS/Quartz) send to a WS-Notification proxy, which in turn sends the notification message to the WS-Notification broker. A trace component is a registered subscriber to the broker. The following is my configuration -
<?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:jee="http://www.springframework.org/schema/jee" xmlns:sm="http://servicemix.apache.org/config/1.0" xmlns:wsn="http://servicemix.apache.org/wsn/1.0" xmlns:inshare="http://inshare.bah.com/schema/jbi" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.0.xsd http://servicemix.apache.org/config/1.0 servicemix-core-3.0-incubating.xsd http://servicemix.apache.org/wsn/1.0 servicemix-wsn2005-3.0-incubating.xsd" default-lazy-init="true"> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:activemq.jndi.properties</value> <value>classpath:jdbc.properties</value> </list> </property> </bean> <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> <property name="basenames"> <list> <value>alert</value> <value>exception</value> <value>resolution</value> </list> </property> </bean> <!-- JMS Template to initialize context --> <bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate"> <property name="environment"> <props> <prop key="java.naming.factory.initial"> ${java.naming.factory.initial} </prop> <prop key="brokerURL">${java.naming.provider.url}</prop> <prop key="useEmbeddedBroker">true</prop> <prop key="inshare.jms.topic.AlertTopic"> inshare.jms.topic.AlertTopic </prop> <prop key="inshare.jms.queue.QueryService"> inshare.jms.queue.QueryService </prop> </props> </property> </bean> <!-- JMS Connection Factory --> <bean id="internalJmsConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory"> <property name="connectionFactory"> <bean class="org.apache.activemq.ActiveMQConnectionFactory"> <property name="brokerURL"> <value>${java.naming.provider.url}</value> </property> </bean> </property> </bean> <!-- JMS Connection Factory for standalone application --> <bean id="jmsConnectionFactory" class="org.springframework.jms.connection.SingleConnectionFactory"> <property name="targetConnectionFactory"> <ref bean="internalJmsConnectionFactory" /> </property> </bean> <!-- JMS Queue Template --> <bean id="jmsQueryTemplate" class="org.springframework.jms.core.JmsTemplate"> <property name="connectionFactory"> <ref bean="jmsConnectionFactory" /> </property> <property name="defaultDestination"> <ref bean="queueDestination" /> </property> <property name="receiveTimeout"> <value>2000</value> </property> <property name="messageConverter"> <ref bean="xmlMessageConverter" /> </property> </bean> <bean id="queueDestination" class="org.apache.activemq.command.ActiveMQQueue" autowire="constructor"> <constructor-arg> <value>inshare.jms.queue.QueryService</value> </constructor-arg> </bean> <bean id="topicDestination" class="org.apache.activemq.command.ActiveMQTopic" autowire="constructor"> <constructor-arg> <value>inshare.jms.topic.AlertTopic</value> </constructor-arg> </bean> <!-- the JBI container --> <sm:container id="jbi" name="InShare ESB" useMBeanServer="true" embedded="true" flowNames="st" createMBeanServer="false" dumpStats="false" statsInterval="10"> <sm:activationSpecs> <sm:activationSpec componentName="feedAggregator" service="inshare:feed" failIfNoDestinationEndpoint="false"> <sm:component> <bean class="org.apache.servicemix.components.rss.RssPollingComponent"> <property name="outputType" value="atom_0.3" /> <property name="period" value="10000" /> <property name="lastPolledDate"> <value>2005/08/10</value> </property> <property name="urlStrings"> <list> <value> http://newsrss.bbc.co.uk/rss/newsonline_uk_edition/front_page/rss.xml </value> <value> http://rss.cnn.com/rss/cnn_topstories.rss </value> </list> </property> </bean> </sm:component> </sm:activationSpec> <!-- Publish WS-Notifications --> <sm:activationSpec componentName="notificationPublisher" destinationService="inshare:publisher" destinationEndpoint="wsnPublisher"> <sm:component> <bean class="org.apache.servicemix.components.quartz.QuartzComponent"> <property name="triggers"> <map> <entry> <key> <bean class="org.quartz.SimpleTrigger"> <property name="repeatInterval" value="0" /> <property name="repeatCount" value="0" /> </bean> </key> <bean class="org.quartz.JobDetail"> <property name="name" value="Notification Alert" /> <property name="group" value="InShare" /> </bean> </entry> </map> </property> </bean> </sm:component> </sm:activationSpec> <sm:activationSpec componentName="notificationProxyPublisher" service="inshare:publisher" endpoint="wsnPublisher"> <sm:component> <wsn:publisher topic="myTopic" /> </sm:component> <!--sm:subscriptions> <sm:subscriptionSpec service="inshare:feed" /> </sm:subscriptions--> </sm:activationSpec> <sm:activationSpec componentName="notificationBroker"> <sm:component> <wsn:component connectionFactory="#internalJmsConnectionFactory"> <wsn:requests> <wsn:subscribe consumer="http://inshare.bah.com/schema/jbi/trace/debug" topic="myTopic" /> </wsn:requests> </wsn:component> </sm:component> </sm:activationSpec> <!-- Route the event to a trace component that just outputs the event to the console --> <sm:activationSpec componentName="tracer" endpoint="debug" service="inshare:trace"> <sm:component> <bean class="org.apache.servicemix.components.util.TraceComponent" /> </sm:component> <!--sm:subscriptions> <sm:subscriptionSpec service="inshare:feed" /> </sm:subscriptions--> </sm:activationSpec> </sm:activationSpecs> </sm:container> <!-- Custom editor for the Date variable lastPolledDate so we can see immediate output --> <bean id="customEditorConfigurer" class="org.springframework.beans.factory.config.CustomEditorConfigurer"> <property name="customEditors"> <map> <entry key="java.util.Date"> <bean class="org.springframework.beans.propertyeditors.CustomDateEditor"> <constructor-arg index="0"> <bean class="java.text.SimpleDateFormat"> <constructor-arg> <value>yyyy/MM/dd</value> </constructor-arg> </bean> </constructor-arg> <constructor-arg index="1"> <value>true</value> </constructor-arg> </bean> </entry> </map> </property> </bean> </beans> I receive the following exception(s) when I enable trace - 08 Nov 2006 19:31:15,528 [ActiveMQ Session Task] ERROR org.apache.servicemix.wsn.spring.WSNSpringComponent - Error processing exchange InOnly[ id: ID:UWS007-4369-1163032267795-5:0 status: Done role: consumer endpoint: debug in: <?xml version="1.0" encoding="UTF-8"?><ns2:Notify xmlns:ns2="http://docs.oasis-open.org/wsn/b-2" xmlns="http://www.w3.org/2005/08/addressing" xmlns:ns3="http://docs.oasis-open.org/wsrf/bf-2" xmlns:ns4="http://docs.oasis-open.org/wsn/t-1"><ns2:NotificationMessage><ns2:Topic>myTopic</ns2:Topic><ns2:Message><timer xmlns="" xmlns:ns5="http://www.w3.org/2005/08/addressing"><name>Notification Alert</name><group>InShare</group><fullname>InShare.Notification Alert</fullname><description/><fireTime>Wed Nov 08 19:31:13 EST 2006</fireTime></timer></ns2:Message></ns2:NotificationMessage></ns2:Notify> ] java.lang.NullPointerException at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:474) at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:461) at org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46) at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610) at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174) at org.apache.servicemix.jbi.nmr.flow.st.STFlow.doSend(STFlow.java:51) at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.send(AbstractFlow.java:126) at org.apache.servicemix.jbi.nmr.DefaultBroker.sendExchangePacket(DefaultBroker.java:281) at org.apache.servicemix.jbi.container.JBIContainer.sendExchange(JBIContainer.java:769) at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:361) at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.send(DeliveryChannelImpl.java:397) at org.apache.servicemix.components.util.PojoSupport.done(PojoSupport.java:193) at org.apache.servicemix.components.util.TraceComponent.onMessageExchange(TraceComponent.java:72) at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610) at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174) at org.apache.servicemix.jbi.nmr.flow.st.STFlow.doSend(STFlow.java:51) at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.send(AbstractFlow.java:126) at org.apache.servicemix.jbi.nmr.DefaultBroker.sendExchangePacket(DefaultBroker.java:281) at org.apache.servicemix.jbi.container.JBIContainer.sendExchange(JBIContainer.java:769) at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:361) at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.send(DeliveryChannelImpl.java:397) at org.apache.servicemix.common.AsyncBaseLifeCycle.sendConsumerExchange(AsyncBaseLifeCycle.java:498) at org.apache.servicemix.wsn.jbi.JbiSubscription.doNotify(JbiSubscription.java:133) at org.apache.servicemix.wsn.jms.JmsSubscription.onMessage(JmsSubscription.java:185) at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:828) at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:96) at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:155) at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:111) at org.apache.activemq.thread.PooledTaskRunner.access$100(PooledTaskRunner.java:26) at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:44) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675) at java.lang.Thread.run(Thread.java:595) 08 Nov 2006 19:31:15,544 [ActiveMQ Session Task] DEBUG org.apache.servicemix.jbi.messaging.DeliveryChannelImpl - Send ID:UWS007-4369-1163032267795-5:0 in DeliveryChannel{notificationBroker} 08 Nov 2006 19:31:15,559 [ActiveMQ Session Task] DEBUG org.apache.servicemix.jbi.messaging.DeliveryChannelImpl - Sent: InOnly[ id: ID:UWS007-4369-1163032267795-5:0 status: Error role: consumer endpoint: debug in: <?xml version="1.0" encoding="UTF-8"?><ns2:Notify xmlns:ns2="http://docs.oasis-open.org/wsn/b-2" xmlns="http://www.w3.org/2005/08/addressing" xmlns:ns3="http://docs.oasis-open.org/wsrf/bf-2" xmlns:ns4="http://docs.oasis-open.org/wsn/t-1"><ns2:NotificationMessage><ns2:Topic>myTopic</ns2:Topic><ns2:Message><timer xmlns="" xmlns:ns5="http://www.w3.org/2005/08/addressing"><name>Notification Alert</name><group>InShare</group><fullname>InShare.Notification Alert</fullname><description/><fireTime>Wed Nov 08 19:31:13 EST 2006</fireTime></timer></ns2:Message></ns2:NotificationMessage></ns2:Notify> error: java.lang.NullPointerException ] 08 Nov 2006 19:31:15,559 [ActiveMQ Session Task] DEBUG org.apache.servicemix.jbi.messaging.DeliveryChannelImpl - Exception processing: ID:UWS007-4369-1163032267795-5:0 in DeliveryChannel{notificationBroker} 08 Nov 2006 19:31:15,559 [ActiveMQ Session Task] ERROR org.apache.servicemix.wsn.spring.WSNSpringComponent - Error setting exchange status to ERROR javax.jbi.messaging.MessagingException: illegal call to send / sendSync at org.apache.servicemix.jbi.messaging.MessageExchangeImpl.handleSend(MessageExchangeImpl.java:571) at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:350) at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.send(DeliveryChannelImpl.java:397) at org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:58) at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610) at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174) at org.apache.servicemix.jbi.nmr.flow.st.STFlow.doSend(STFlow.java:51) at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.send(AbstractFlow.java:126) at org.apache.servicemix.jbi.nmr.DefaultBroker.sendExchangePacket(DefaultBroker.java:281) at org.apache.servicemix.jbi.container.JBIContainer.sendExchange(JBIContainer.java:769) at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:361) at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.send(DeliveryChannelImpl.java:397) at org.apache.servicemix.components.util.PojoSupport.done(PojoSupport.java:193) at org.apache.servicemix.components.util.TraceComponent.onMessageExchange(TraceComponent.java:72) at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610) at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174) at org.apache.servicemix.jbi.nmr.flow.st.STFlow.doSend(STFlow.java:51) at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.send(AbstractFlow.java:126) at org.apache.servicemix.jbi.nmr.DefaultBroker.sendExchangePacket(DefaultBroker.java:281) at org.apache.servicemix.jbi.container.JBIContainer.sendExchange(JBIContainer.java:769) at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:361) at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.send(DeliveryChannelImpl.java:397) at org.apache.servicemix.common.AsyncBaseLifeCycle.sendConsumerExchange(AsyncBaseLifeCycle.java:498) at org.apache.servicemix.wsn.jbi.JbiSubscription.doNotify(JbiSubscription.java:133) at org.apache.servicemix.wsn.jms.JmsSubscription.onMessage(JmsSubscription.java:185) at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:828) at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:96) at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:155) at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:111) at org.apache.activemq.thread.PooledTaskRunner.access$100(PooledTaskRunner.java:26) at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:44) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675) at java.lang.Thread.run(Thread.java:595) -- View this message in context: http://www.nabble.com/NullPointerException---AsyncBaseLifeCycle.doProcess-tf2598962s12049.html#a7250337 Sent from the ServiceMix - Dev mailing list archive at Nabble.com.
