Using the latest version of servicemix: Apache ServiceMix 3.2.1 in a Linux environment.
I'm following the tutorial #3 ( http://servicemix.apache.org/3-beginner-using-apache-camel-inside-servicemix.html Beginner - Using Apache Camel inside ServiceMix ) step by step and was able to successfully deploy the SA without any issues. tutorial-camel-sa]# mvn jbi:projectDeploy -DforceUpdate=true This is great and works! ServiceMixLog: ---------------- INFO - ComponentMBeanImpl - Starting component: servicemix-jms INFO - ComponentMBeanImpl - Starting component: servicemix-camel INFO - tutorial - Exchange[Message: Hello World!] INFO - tutorial - Exchange[Message: Hello World!] INFO - tutorial - Exchange[Message: Hello World!] . . . My problem occurs when I redploy this SA. I would like to think that in a production environment, we can redoply SAs without stopping service mix. Hence the '-DforceUpdate=true' variable. An exception is thrown stating that 'A kernel is already registered with the name servicemix-camel/tutorial-camel-su'. Can someone please inform me of what I'm doing wrong or how to resolve this issue? Any advice would be much appreciated. Below is a trace of the service mix log after redeploying the SA again. tutorial-camel-sa]# mvn jbi:projectDeploy -DforceUpdate=true ServiceMixLog on a Redeploy: --------------------------- INFO - ServiceAssemblyLifeCycle - Stopping service assembly: tutorial-sa INFO - ServiceUnitLifeCycle - Stopping service unit: tutorial-file-su INFO - ServiceUnitLifeCycle - Stopping service unit: tutorial-camel INFO - ServiceUnitLifeCycle - Stopping service unit: tutorial-jms INFO - ServiceAssemblyLifeCycle - Shutting down service assembly: tutorial-sa INFO - ServiceUnitLifeCycle - Shutting down service unit: tutorial-file-su INFO - ServiceUnitLifeCycle - Shutting down service unit: tutorial-camel INFO - ServiceUnitLifeCycle - Shutting down service unit: tutorial-jms INFO - JBIContainer - Deactivating component servicemix-jms INFO - EnvironmentContext - Removed directory structure for component [version]: servicemix-jms [servicemix-jms] INFO - ComponentMBeanImpl - Starting component: servicemix-jms INFO - ComponentMBeanImpl - Initializing component: servicemix-jms INFO - ServiceAssemblyLifeCycle - Starting service assembly: tutorial-sa INFO - ServiceUnitLifeCycle - Initializing service unit: tutorial-file-su INFO - ServiceUnitLifeCycle - Initializing service unit: tutorial-camel INFO - ServiceUnitLifeCycle - Initializing service unit: tutorial-jms INFO - ServiceUnitLifeCycle - Starting service unit: tutorial-file-su INFO - ServiceUnitLifeCycle - Starting service unit: tutorial-camel INFO - StatisticsService - Unable to unregister endpoint statistics MBean: null INFO - JBIContainer - Deactivating component servicemix-camel INFO - EnvironmentContext - Removed directory structure for component [version]: servicemix-camel [servicemix-camel] INFO - ComponentMBeanImpl - Starting component: servicemix-camel INFO - ComponentMBeanImpl - Initializing component: servicemix-camel INFO - ServiceUnitLifeCycle - Starting service unit: tutorial-jms INFO - DeploymentService - UnDeployed ServiceUnit tutorial-camel-jms-su from Component: servicemix-jms ERROR - AutoDeploymentService - Failed to update Service Assembly: tutorial-camel-sa java.lang.Exception: <?xml version="1.0" encoding="UTF-8"?> <jbi-task xmlns="http://java.sun.com/xml/ns/jbi/management-message" version="1.0"> <jbi-task-result> <frmwk-task-result> <frmwk-task-result-details> <task-result-details> <task-id>deploy</task-id> <task-result>FAILED</task-result> <message-type>ERROR</message-type> </task-result-details> </frmwk-task-result-details> </frmwk-task-result> <component-task-result xmlns="http://java.sun.com/xml/ns/jbi/management-message"> <component-name>servicemix-camel</component-name> <component-task-result-details> <task-result-details> <task-id>deploy</task-id> <task-result>FAILED</task-result> <message-type>ERROR</message-type> <task-status-msg> <msg-loc-info> <loc-token/> <loc-message>Unable to deploy service unit</loc-message> </msg-loc-info> </task-status-msg> <exception-info> <nesting-level>1</nesting-level> <msg-loc-info> <loc-token/> <loc-message>A kernel is already registered with the name servicemix-camel/tutorial-camel-su</loc-message> <stack-trace><![CDATA[org.apache.xbean.kernel.KernelAlreadyExistsException: A kernel is already registered with the name servicemix-camel/tutorial-camel-su at org.apache.xbean.kernel.KernelFactory.createKernel(KernelFactory.java:175) at org.apache.servicemix.common.xbean.AbstractXBeanDeployer.deploy(AbstractXBeanDeployer.java:65) at org.apache.servicemix.camel.CamelSpringDeployer.deploy(CamelSpringDeployer.java:79) at org.apache.servicemix.common.BaseServiceUnitManager.doDeploy(BaseServiceUnitManager.java:88) at org.apache.servicemix.common.BaseServiceUnitManager.deploy(BaseServiceUnitManager.java:69) at org.apache.servicemix.jbi.framework.DeploymentService.deployServiceAssembly(DeploymentService.java:508) at org.apache.servicemix.jbi.framework.AutoDeploymentService.updateServiceAssembly(AutoDeploymentService.java:350) at org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchive(AutoDeploymentService.java:253) at org.apache.servicemix.jbi.framework.AutoDeploymentService.updateExternalArchive(AutoDeploymentService.java:201) at org.apache.servicemix.jbi.container.JBIContainer.updateExternalArchive(JBIContainer.java:476) at org.apache.servicemix.jbi.container.JBIContainer.updateExternalArchive(JBIContainer.java:486) at org.apache.servicemix.jbi.framework.AdminCommandsService.deployServiceAssembly(AdminCommandsService.java:209) 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.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:216) at org.apache.servicemix.jbi.management.BaseStandardMBean.invoke(BaseStandardMBean.java:323) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836) at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761) at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1426) at javax.management.remote.rmi.RMIConnectionImpl.access$200(RMIConnectionImpl.java:72) at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1264) at java.security.AccessController.doPrivileged(Native Method) at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1366) at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:788) 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 sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305) at sun.rmi.transport.Transport$1.run(Transport.java:159) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:155) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) at java.lang.Thread.run(Thread.java:619) ]]></stack-trace> </msg-loc-info> </exception-info> </task-result-details> </component-task-result-details> </component-task-result> <component-task-result xmlns="http://java.sun.com/xml/ns/jbi/management-message"> <component-name>servicemix-jms</component-name> <component-task-result-details> <task-result-details> <task-id>deploy</task-id> <task-result>SUCCESS</task-result> </task-result-details> </component-task-result-details> </component-task-result> </jbi-task-result> </jbi-task> at org.apache.servicemix.jbi.framework.ManagementSupport.failure(ManagementSupport.java:125) at org.apache.servicemix.jbi.framework.ManagementSupport.failure(ManagementSupport.java:111) at org.apache.servicemix.jbi.framework.DeploymentService.deployServiceAssembly(DeploymentService.java:543) at org.apache.servicemix.jbi.framework.AutoDeploymentService.updateServiceAssembly(AutoDeploymentService.java:350) at org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchive(AutoDeploymentService.java:253) at org.apache.servicemix.jbi.framework.AutoDeploymentService.updateExternalArchive(AutoDeploymentService.java:201) at org.apache.servicemix.jbi.container.JBIContainer.updateExternalArchive(JBIContainer.java:476) at org.apache.servicemix.jbi.container.JBIContainer.updateExternalArchive(JBIContainer.java:486) at org.apache.servicemix.jbi.framework.AdminCommandsService.deployServiceAssembly(AdminCommandsService.java:209) 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.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:216) at org.apache.servicemix.jbi.management.BaseStandardMBean.invoke(BaseStandardMBean.java:323) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836) at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761) at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1426) at javax.management.remote.rmi.RMIConnectionImpl.access$200(RMIConnectionImpl.java:72) at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1264) at java.security.AccessController.doPrivileged(Native Method) at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1366) at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:788) 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 sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305) at sun.rmi.transport.Transport$1.run(Transport.java:159) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:155) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) at java.lang.Thread.run(Thread.java:619) -- View this message in context: http://www.nabble.com/Tutorial--3---Camel---Redeploying-SA-Causes-%27kernel-already-registered%27-exception-tp18263771p18263771.html Sent from the ServiceMix - User mailing list archive at Nabble.com.