Hello,
I am trying to build and deploy a custom service engine and its
corresponding service unit in ServiceMix 4.3.0-fuse-00-00. To do so, I
followed the steps in the HelloWorld SE tutorial.
I succeed in building my helloWorld SE, the corresponding helloWorld SU,
a servicemix-http SU to bind with the helloWorld SU and the helloWorld
SA to deploy the 2 SUs.
When I deploy the SE and the SA, I can see them appear in the karaf
console :
[ 219] [Active ] [ ] [ ] [ 60] An Hello World
Service Engine (1.0.0)
[ 220] [Active ] [ ] [ ] [ 60] hello-world-sa (0.0.0)
But in fact the SA does not deploy correctly, as shown in the logs :
12:07:42,873 | INFO | use-00-00/deploy |
Deployer | cemix.jbi.deployer.impl.Deployer 323
| 93 - org.apache.servicemix.jbi.deployer - 1.3.0.fuse-00-00 | Deploying
bundle 'null (hello-world-sa)' as a JBI service assembly
12:07:42,874 | WARN | use-00-00/deploy |
Deployer | cemix.jbi.deployer.impl.Deployer 339
| 93 - org.apache.servicemix.jbi.deployer - 1.3.0.fuse-00-00 |
Requirements not met for JBI artifact in bundle null (hello-world-sa).
Installation pending.
org.apache.servicemix.jbi.deployer.impl.PendingException: Component not
installed: hello-world-se
It seems to me that the helloWorld SU cannot find the helloWorld SE
while it is indeed installed and active.
I cannot find any clue to solve this issue. Does it come from the SE ?
Does it come from the SU ?
Can anyone help me to solve this ?
Attached are the SE and SU pom.xml files and the SU xbean.xml file.
In addition, I tried installing both SE and SA in the more recent
ServiceMix 4.3.0-fuse-01-00 version.
This time, the SE (the exact same SE) never appears in karaf console.
Thanks for any help,
- emmanuel
--
Ingénieur études et développements
Intrinsec
215, avenue Georges Clemenceau
92000 Nanterre
http://www.intrinsec.com
Emmanuel GUITON
Ingénieur développement
Standard : +33 1 41 91 77 77 l Fax : +33 1 41 91 77 78
215, avenue Georges Clemenceau l 92024 NANTERRE
http://infogerance.intrinsec.com/2010/04/informatique-de-lunicef-un-cloud-au-secours-dhaiti.html
http://www.intrinsec.com/
<?xml version="1.0" encoding="UTF-8"?>
<!-- SU -->
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.intrinsec.iop.helloworld.se</groupId>
<artifactId>hello-world-su</artifactId>
<packaging>jbi-service-unit</packaging>
<version>1.0</version>
<name>An Hello World Project Service Unit</name>
<dependencies>
<dependency>
<groupId>com.intrinsec.iop.helloworld.se</groupId>
<artifactId>hello-world-se</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.servicemix.tooling</groupId>
<artifactId>jbi-maven-plugin</artifactId>
<extensions>true</extensions>
</plugin>
</plugins>
</build>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<!-- SE -->
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.intrinsec.iop.helloworld.se</groupId>
<artifactId>hello-world-se</artifactId>
<packaging>jbi-component</packaging>
<version>1.0</version>
<name>An Hello World Service Engine</name>
<properties>
<servicemix.osgi.import>
!com.intrinsec.iop.helloworld.se*,
org.apache.servicemix.common,
org.apache.servicemix.common.osgi,
org.apache.servicemix.executors.impl,
org.apache.servicemix.jbi.container*;resolution:=optional,
org.apache.servicemix.jbi.framework*;resolution:=optional,
org.apache.xbean.spring.context.v2,
org.springframework.beans.factory.xml,
sun.misc;resolution:=optional,
*
</servicemix.osgi.import>
<servicemix.osgi.export>
com.intrinsec.iop.helloworld.se*;version=1.0
</servicemix.osgi.export>
<servicemix.osgi.dynamic.import>
javax.*,org.w3c.*,org.xml.*
</servicemix.osgi.dynamic.import>
<servicemix.osgi.private />
<servicemix.osgi.bundles>
org.springframework.core,
org.springframework.beans,
org.springframework.context,
</servicemix.osgi.bundles>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.servicemix</groupId>
<artifactId>servicemix-shared</artifactId>
<version>2010.01</version>
</dependency>
<dependency>
<groupId>org.apache.servicemix</groupId>
<artifactId>servicemix-core</artifactId>
<version>3.3.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.servicemix.tooling</groupId>
<artifactId>jbi-maven-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<type>service-engine</type>
<component>com.intrinsec.iop.helloworld.se.MyComponent</component>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.xbean</groupId>
<artifactId>maven-xbean-plugin</artifactId>
<executions>
<execution>
<configuration>
<namespace>http://com.intrinsec.iop.helloworld.se/1.0</namespace>
</configuration>
<goals>
<goal>mapping</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<configuration>
<instructions>
<Bundle-Name>${project.name}</Bundle-Name>
<Bundle-SymbolicName>${pom.artifactId}</Bundle-SymbolicName>
<Export-Package>${servicemix.osgi.export}</Export-Package>
<Import-Package>${servicemix.osgi.import}</Import-Package>
<DynamicImport-Package>${servicemix.osgi.dynamic.import}</DynamicImport-Package>
<Private-Package>${servicemix.osgi.private}</Private-Package>
<Require-Bundle>${servicemix.osgi.bundles}</Require-Bundle>
</instructions>
<supportedProjectTypes>
<supportedProjectType>jar</supportedProjectType>
<supportedProjectType>bundle</supportedProjectType>
<supportedProjectType>jbi-component</supportedProjectType>
<supportedProjectType>jbi-shared-library</supportedProjectType>
</supportedProjectTypes>
<unpackBundle>true</unpackBundle>
</configuration>
<executions>
<execution>
<id>bundle-manifest</id>
<phase>process-classes</phase>
<goals>
<goal>manifest</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<useDefaultManifestFile>true</useDefaultManifestFile>
</configuration>
</plugin>
</plugins>
</build>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:hwse="http://com.intrinsec.iop.helloworld.se/1.0"
xmlns:isc="http://www.intrinsec.com">
<hwse:endpoint service="isc:helloWorld" endpoint="helloWorldEndPoint"/>
</beans>