If you are writing a lightweight component (inheriting the
ComponentSupport base class), you have to deploy your service unit
onto the servicemix-lwcontainer component.
So:
1) make sure the servicemix-lwcontainer is installed (you can just
copy the servicemix-lwcontainer zip to the install dir)
2) you have to specify servicemix-lwcontainer as the target
component in your SA jbi descriptor
<service-unit>
<identification>
<name>xxx-su</name>
<description>xxx-su components</description>
</identification>
<target>
<artifacts-zip>xxx-su.zip</artifacts-zip>
<component-name>servicemix-lwcontainer</component-name>
</target>
</service-unit>
Cheers,
Guillaume Nodet
On 4/9/06, Soumadeep <[EMAIL PROTECTED]> wrote:
> Hi,
> Need some help with auto-deploying service assemblies. Is there a proper doc
> somewhere, which I can refer to?
> This is what I tried.
> Structure of the xxx-sa.zip
> xxx-sa.zip
> |----------- META-IN
> |------------- jbi.xml
> |----------- xxx-su.zip
> |------------- component
> | |-----------------Xyz.class
> |------------- servicemix.xml
>
>
> The class Xyz extends ComponentSupport and implements
> MessageExchangeListener. It works fine if I change the element
> <sm:serviceunit id="jbi"> to <sm:container id="jbi"> in the servicemix.xml
> and put it in the root dir of the new sample component that I have made.
>
> Would appreciate if anyone could help.
>
> Thanks
> Soumadeep
>
> Console output
> ============
> INFO - ComponentMBeanImpl.init(184) | Initializing component:
> #SubscriptionManag
> er#
> INFO - DeploymentService.buildState(683) | Restoring service assemblies
> INFO - JBIContainer.init(508) | ServiceMix JBI Container
> (http://servicemix.org/
> ) name: ServiceMix running version: 3.0-SNAPSHOT
> INFO - ComponentMBeanImpl.setInitialRunningState(335) | Setting running
> state fo
> r Component: servicemix-lwcontainer to Started
> INFO - ComponentMBeanImpl.init(184) | Initializing component:
> servicemix-lwconta
> iner
> INFO - AutoDeploymentService$2.run(504) | Directory: deploy: Archive
> changed: pr
> ocessing xxx-sa.zip ...
> INFO - AutoDeploymentService.updateArchive(264) | Components xyz are not in
> stalled yet - adding ServiceAssembly xxx-sa to pending list
> INFO - AutoDeploymentService$2.run(508) | Directory: deploy: Finished
> installati
> on of archive: xbroker-sa.zip
>
>
>
>
> JBI File:
> ======
> <?xml version="1.0" encoding="UTF-8"?>
> <jbi xmlns="http://java.sun.com/xml/ns/jbi" version="1.0"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="http://java.sun.com/xml/ns/jbi
> C:\servicemix-test-file\jbi.xsd">
> <service-assembly>
> <identification>
> <name>xxx-sa</name>
> <description>xxx-sa</description>
> </identification>
> <service-unit>
> <identification>
> <name>xxx-su</name>
> <description>xxx-su components</description>
> </identification>
> <target>
> <artifacts-zip>xxx-su.zip</artifacts-zip>
> <component-name>xyz</component-name>
> </target>
> </service-unit>
> </service-assembly>
> </jbi>
>
> Servicemix.xml
> =============
> <?xml version="1.0" encoding="UTF-8"?>
> <beans xmlns="http://xbean.org/schemas/spring/1.0"
> xmlns:sm="http://servicemix.org/config/1.0"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:foo="http://servicemix.org/demo/">
>
> <classpath>
> <location>.</location>
> </classpath>
>
> <!-- the JBI container -->
> <sm:serviceunit id="jbi">
>
> <sm:activationSpecs>
>
> <!-- Create a http server binding on port 8912 and have it
> forward to the
> foo:stockQuote -->
> <sm:activationSpec componentName="httpReceiver"
> service="foo:httpBinding"
>
> destinationService="foo:xyz">
> <sm:component>
> <bean
> class="org.apache.servicemix.components.http.HttpConnector">
> <!-- <property name="host" value="localhost"/> -->
> <property name="host" value="localhost"/>
> <property name="port" value="8912"/>
> </bean>
> </sm:component>
> </sm:activationSpec>
>
> <!-- This just invokes another service -->
> <sm:activationSpec componentName="xyz"
> service="foo:xyz"
>
> destinationService="foo:stockQuote">>
> <sm:component>
> <bean class="component.Xyz">
> </bean>
> </sm:component>
> </sm:activationSpec>
> <!-- This just invokes another service -->
> <sm:activationSpec componentName="stockQuote"
> service="foo:stockQuote">
> <sm:component>
> <bean
> class="org.apache.servicemix.components.saaj.SaajBinding">
> <property name="soapEndpoint">
> <bean class="javax.xml.messaging.URLEndpoint">
> <constructor-arg
> value="http://64.124.140.30/soap"/>
> </bean>
> </property>
> </bean>
> </sm:component>
>
> </sm:activationSpec>
> </sm:activationSpecs>
>
> </sm:serviceunit>
>
> </beans>
>
> servicemix.xml - for the root directory when used with auto-deploy/ ant task
> =======================================================
> <?xml version="1.0" encoding="UTF-8"?>
> <beans xmlns:sm="http://servicemix.apache.org/config/1.0">
>
> <!-- the JBI container -->
> <sm:container id="jbi"
> useMBeanServer="true"
> createMBeanServer="true"
> installationDirPath="./install"
> deploymentDirPath="./deploy"
> monitorInstallationDirectory="true"
> dumpStats="true"
> statsInterval="10">
>
> <sm:activationSpecs>
> </sm:activationSpecs>
> </sm:container>
>
> </beans>
>
>
>
>