You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by TheWinch <vi...@thalesgroup.com> on 2009/07/03 17:59:47 UTC
[SMX4] Error exposing a HTTP Provider SU through OSGi
Hello all,
I followed the excellent tutorial from
http://cwiki.apache.org/SMX4/creating-an-osgi-bundle-for-deploying-jbi-endpoints.html
here . I managed to run the tutorial to end, which means that I can deploy
ServiceMix::File and ServiceMix::Bean service units using OSGi.
I used the same process to expose a ServiceMix::HTTP provider SU (find code
below).
When I deploy my bundle, I get the following error:
> Unable to create application context for
> [eu.diva.tis.messaging.organizations.soap-connector], unsatisfied
> dependencies: none
> org.springframework.beans.factory.BeanDefinitionStoreException: Failed to
> load type: org.apache.servicemix.http.endpoints.HttpProviderEndpoint.
> Reason: java.lang.ClassNotFoundException:
> org.apache.servicemix.http.endpoints.HttpProviderEndpoint; nested
> exception is java.lang.ClassNotFoundException:
> org.apache.servicemix.http.endpoints.HttpProviderEndpoint
>
I thought this was because my pom.xml only specified
org.apache.servicemix.http in the Import-Package section, so I added
...http.endpoints. But then I get this exception :
> org.osgi.framework.BundleException: Unresolved constraint in bundle 165:
> package; (package=org.apache.servicemix.http.endpoint)
>
I guess the solution is either to embed servicemix-http in the bundle, or
try a way to get the ....http.ednpoint package imported. But I can't find
how. Does someone have a solution ?
POM.xml:
> <?xml version="1.0" encoding="UTF-8"?>
> <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>eu.diva.tis.messaging.organizations</groupId>
> <artifactId>soap-connector</artifactId>
> <packaging>bundle</packaging>
> <name>DiVA :: Messaging :: Organizations SOAP Connector</name>
> <version>0.0.1-SNAPSHOT</version>
> <dependencies>
> <dependency>
> <groupId>org.apache.servicemix</groupId>
> <artifactId>servicemix-http</artifactId>
> <version>2009.01</version>
> </dependency>
> </dependencies>
> <build>
> <resources>
> <resource>
> <directory>src/main/resources</directory>
> <includes>
> <include>**/*</include>
> </includes>
> </resource>
> </resources>
> <plugins>
> <!-- configure the bundle plugin with some additional imports -->
> <plugin>
> <groupId>org.apache.felix</groupId>
> <artifactId>maven-bundle-plugin</artifactId>
> <version>2.0.0</version>
> <extensions>true</extensions>
> <configuration>
> <instructions>
>
> <Import-Package>org.apache.servicemix.http,org.apache.servicemix.http.endpoint,org.apache.servicemix.bean,org.apache.servicemix.common.osgi,*</Import-Package>
> </instructions>
> </configuration>
> </plugin>
> </plugins>
> </build>
> <properties>
> <servicemix-version>4.0.0</servicemix-version>
> </properties>
> </project>
>
META-INF/spring/beans.xml :
> <?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:http="http://servicemix.apache.org/http/1.0"
> xmlns:msg="http://tis.diva.eu/messaging"
> xsi:schemaLocation="
> http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans.xsd
> http://servicemix.apache.org/http/1.0
>
> http://servicemix.apache.org/schema/servicemix-http-2009.01.xsd" >
>
> <!-- use this special class to register the endpoints with the NMR -->
> <bean class="org.apache.servicemix.common.osgi.EndpointExporter" />
>
> <http:provider service="msg:organizations"
> endpoint="soap"
> locationURI="http://localhost:9003/OrganizationService"
> />
>
> </beans>
>
--
View this message in context: http://www.nabble.com/-SMX4--Error-exposing-a-HTTP-Provider-SU-through-OSGi-tp24325328p24325328.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.
Re: [SMX4] Error exposing a HTTP Provider SU through OSGi
Posted by TheWinch <vi...@thalesgroup.com>.
No, it does not work either. I get the following warning:
> [INFO] [bundle:bundle]
> [WARNING] Warning building bundle
> eu.diva.tis.messaging.organizations:soap-connector:bundle:0.0.1-SN
> APSHOT : Did not find matching referal for *
> [WARNING] Warning building bundle
> eu.diva.tis.messaging.organizations:soap-connector:bundle:0.0.1-SN
> APSHOT : Did not find matching referal for org.apache.servicemix.http.*
> [INFO] [install:install]
>
and the output Manifest does not contain inclusions for
org.apache.servicemix.http at all.
Anyway, it works way better with ...http.endpointS
Freeman Fang wrote:
>
> Hi,
>
> Try to use ...http* instead
>
> Freeman
>
--
View this message in context: http://www.nabble.com/-SMX4--Error-exposing-a-HTTP-Provider-SU-through-OSGi-tp24325328p24355724.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.
Re: [SMX4] Error exposing a HTTP Provider SU through OSGi
Posted by Freeman Fang <fr...@gmail.com>.
Hi,
Try to use ...http* instead
Freeman
On 2009-7-4, at 下午5:41, TheWinch wrote:
>
> Hi Freeman,
>
> Ok you're right. All my excuses for my silly question :-).
>
> By the way, I tried to add ....http.* in the Package-Import clause,
> but it
> seems that the tool won't like it (I have not the error presently
> but I end
> up with a Manifest.mf file without the org.apache.servicemix.http at
> all).
> Same for the "*" import at the end of the <Import-Package>
> instruction.
> Any idea about how to specify it ?
>
>
>
> Freeman Fang wrote:
>>
>> Hi,
>> My comment inline
>> On 2009-7-3, at 下午11:59, TheWinch wrote:
>>
>>>
>>> Hello all,
>>>
>>> I followed the excellent tutorial from
>>> http://cwiki.apache.org/SMX4/creating-an-osgi-bundle-for-deploying-jbi-endpoints.html
>>> here . I managed to run the tutorial to end, which means that I can
>>> deploy
>>> ServiceMix::File and ServiceMix::Bean service units using OSGi.
>>>
>>> I used the same process to expose a ServiceMix::HTTP provider SU
>>> (find code
>>> below).
>>> When I deploy my bundle, I get the following error:
>>>
>>>
>>>
>>>> Unable to create application context for
>>>> [eu.diva.tis.messaging.organizations.soap-connector], unsatisfied
>>>> dependencies: none
>>>> org.springframework.beans.factory.BeanDefinitionStoreException:
>>>> Failed to
>>>> load type:
>>>> org.apache.servicemix.http.endpoints.HttpProviderEndpoint.
>>>> Reason: java.lang.ClassNotFoundException:
>>>> org.apache.servicemix.http.endpoints.HttpProviderEndpoint; nested
>>>> exception is java.lang.ClassNotFoundException:
>>>> org.apache.servicemix.http.endpoints.HttpProviderEndpoint
>>>>
>>>
>>> I thought this was because my pom.xml only specified
>>> org.apache.servicemix.http in the Import-Package section, so I added
>>> ...http.endpoints. But then I get this exception :
>>>
>>>
>>>
>>>> org.osgi.framework.BundleException: Unresolved constraint in bundle
>>>> 165:
>>>> package; (package=org.apache.servicemix.http.endpoint)
>>>>
>>>
>>> I guess the solution is either to embed servicemix-http in the
>>> bundle, or
>>> try a way to get the ....http.ednpoint package imported. But I can't
>>> find
>>> how. Does someone have a solution ?
>>>
>>
>>> POM.xml:
>>>
>>>
>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>> <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>eu.diva.tis.messaging.organizations</groupId>
>>>> <artifactId>soap-connector</artifactId>
>>>> <packaging>bundle</packaging>
>>>> <name>DiVA :: Messaging :: Organizations SOAP Connector</name>
>>>> <version>0.0.1-SNAPSHOT</version>
>>>> <dependencies>
>>>> <dependency>
>>>> <groupId>org.apache.servicemix</groupId>
>>>> <artifactId>servicemix-http</artifactId>
>>>> <version>2009.01</version>
>>>> </dependency>
>>>> </dependencies>
>>>> <build>
>>>> <resources>
>>>> <resource>
>>>> <directory>src/main/resources</directory>
>>>> <includes>
>>>> <include>**/*</include>
>>>> </includes>
>>>> </resource>
>>>> </resources>
>>>> <plugins>
>>>> <!-- configure the bundle plugin with some additional imports
>>>> -->
>>>> <plugin>
>>>> <groupId>org.apache.felix</groupId>
>>>> <artifactId>maven-bundle-plugin</artifactId>
>>>> <version>2.0.0</version>
>>>> <extensions>true</extensions>
>>>> <configuration>
>>>> <instructions>
>>>>
>>>> <Import-
>>>> Package
>>>>>
>>>> org
>>>> .apache
>>>> .servicemix
>>>> .http
>>>> ,org
>>>> .apache
>>>> .servicemix
>>>> .http
>>>> .endpoint
>>>> ,org.apache.servicemix.bean,org.apache.servicemix.common.osgi,*</
>>>> Import-Package>
>> it should be ...http.endpoints but not ...http.endpoint
>>>>
>>>> </instructions>
>>>> </configuration>
>>>> </plugin>
>>>> </plugins>
>>>> </build>
>>>> <properties>
>>>> <servicemix-version>4.0.0</servicemix-version>
>>>> </properties>
>>>> </project>
>>>>
>>>
>>>
>>> META-INF/spring/beans.xml :
>>>
>>>
>>>
>>>> <?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:http="http://servicemix.apache.org/http/1.0"
>>>> xmlns:msg="http://tis.diva.eu/messaging"
>>>> xsi:schemaLocation="
>>>> http://www.springframework.org/schema/beans
>>>> http://www.springframework.org/schema/beans/spring-
>>>> beans.xsd
>>>> http://servicemix.apache.org/http/1.0
>>>>
>>>> http://servicemix.apache.org/schema/servicemix-http-2009.01.xsd" >
>>>>
>>>> <!-- use this special class to register the endpoints with the
>>>> NMR -->
>>>> <bean
>>>> class="org.apache.servicemix.common.osgi.EndpointExporter" />
>>>>
>>>> <http:provider service="msg:organizations"
>>>> endpoint="soap"
>>>> locationURI="http://localhost:9003/OrganizationService
>>>> "
>>>> />
>>>>
>>>> </beans>
>>>>
>>> --
>>> View this message in context:
>>> http://www.nabble.com/-SMX4--Error-exposing-a-HTTP-Provider-SU-through-OSGi-tp24325328p24325328.html
>>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>>
>>
>>
>> --
>> Freeman Fang
>> ------------------------
>> Open Source SOA: http://fusesource.com
>>
>>
>>
>
> --
> View this message in context: http://www.nabble.com/-SMX4--Error-exposing-a-HTTP-Provider-SU-through-OSGi-tp24325328p24332323.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>
--
Freeman Fang
------------------------
Open Source SOA: http://fusesource.com
Re: [SMX4] Error exposing a HTTP Provider SU through OSGi
Posted by TheWinch <vi...@thalesgroup.com>.
Hi Freeman,
Ok you're right. All my excuses for my silly question :-).
By the way, I tried to add ....http.* in the Package-Import clause, but it
seems that the tool won't like it (I have not the error presently but I end
up with a Manifest.mf file without the org.apache.servicemix.http at all).
Same for the "*" import at the end of the <Import-Package> instruction.
Any idea about how to specify it ?
Freeman Fang wrote:
>
> Hi,
> My comment inline
> On 2009-7-3, at 下午11:59, TheWinch wrote:
>
>>
>> Hello all,
>>
>> I followed the excellent tutorial from
>> http://cwiki.apache.org/SMX4/creating-an-osgi-bundle-for-deploying-jbi-endpoints.html
>> here . I managed to run the tutorial to end, which means that I can
>> deploy
>> ServiceMix::File and ServiceMix::Bean service units using OSGi.
>>
>> I used the same process to expose a ServiceMix::HTTP provider SU
>> (find code
>> below).
>> When I deploy my bundle, I get the following error:
>>
>>
>>
>>> Unable to create application context for
>>> [eu.diva.tis.messaging.organizations.soap-connector], unsatisfied
>>> dependencies: none
>>> org.springframework.beans.factory.BeanDefinitionStoreException:
>>> Failed to
>>> load type: org.apache.servicemix.http.endpoints.HttpProviderEndpoint.
>>> Reason: java.lang.ClassNotFoundException:
>>> org.apache.servicemix.http.endpoints.HttpProviderEndpoint; nested
>>> exception is java.lang.ClassNotFoundException:
>>> org.apache.servicemix.http.endpoints.HttpProviderEndpoint
>>>
>>
>> I thought this was because my pom.xml only specified
>> org.apache.servicemix.http in the Import-Package section, so I added
>> ...http.endpoints. But then I get this exception :
>>
>>
>>
>>> org.osgi.framework.BundleException: Unresolved constraint in bundle
>>> 165:
>>> package; (package=org.apache.servicemix.http.endpoint)
>>>
>>
>> I guess the solution is either to embed servicemix-http in the
>> bundle, or
>> try a way to get the ....http.ednpoint package imported. But I can't
>> find
>> how. Does someone have a solution ?
>>
>
>> POM.xml:
>>
>>
>>> <?xml version="1.0" encoding="UTF-8"?>
>>> <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>eu.diva.tis.messaging.organizations</groupId>
>>> <artifactId>soap-connector</artifactId>
>>> <packaging>bundle</packaging>
>>> <name>DiVA :: Messaging :: Organizations SOAP Connector</name>
>>> <version>0.0.1-SNAPSHOT</version>
>>> <dependencies>
>>> <dependency>
>>> <groupId>org.apache.servicemix</groupId>
>>> <artifactId>servicemix-http</artifactId>
>>> <version>2009.01</version>
>>> </dependency>
>>> </dependencies>
>>> <build>
>>> <resources>
>>> <resource>
>>> <directory>src/main/resources</directory>
>>> <includes>
>>> <include>**/*</include>
>>> </includes>
>>> </resource>
>>> </resources>
>>> <plugins>
>>> <!-- configure the bundle plugin with some additional imports
>>> -->
>>> <plugin>
>>> <groupId>org.apache.felix</groupId>
>>> <artifactId>maven-bundle-plugin</artifactId>
>>> <version>2.0.0</version>
>>> <extensions>true</extensions>
>>> <configuration>
>>> <instructions>
>>>
>>> <Import-
>>> Package
>>> >
>>> org
>>> .apache
>>> .servicemix
>>> .http
>>> ,org
>>> .apache
>>> .servicemix
>>> .http
>>> .endpoint
>>> ,org.apache.servicemix.bean,org.apache.servicemix.common.osgi,*</
>>> Import-Package>
> it should be ...http.endpoints but not ...http.endpoint
>>>
>>> </instructions>
>>> </configuration>
>>> </plugin>
>>> </plugins>
>>> </build>
>>> <properties>
>>> <servicemix-version>4.0.0</servicemix-version>
>>> </properties>
>>> </project>
>>>
>>
>>
>> META-INF/spring/beans.xml :
>>
>>
>>
>>> <?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:http="http://servicemix.apache.org/http/1.0"
>>> xmlns:msg="http://tis.diva.eu/messaging"
>>> xsi:schemaLocation="
>>> http://www.springframework.org/schema/beans
>>> http://www.springframework.org/schema/beans/spring-
>>> beans.xsd
>>> http://servicemix.apache.org/http/1.0
>>>
>>> http://servicemix.apache.org/schema/servicemix-http-2009.01.xsd" >
>>>
>>> <!-- use this special class to register the endpoints with the
>>> NMR -->
>>> <bean
>>> class="org.apache.servicemix.common.osgi.EndpointExporter" />
>>>
>>> <http:provider service="msg:organizations"
>>> endpoint="soap"
>>> locationURI="http://localhost:9003/OrganizationService
>>> "
>>> />
>>>
>>> </beans>
>>>
>> --
>> View this message in context:
>> http://www.nabble.com/-SMX4--Error-exposing-a-HTTP-Provider-SU-through-OSGi-tp24325328p24325328.html
>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>
>
>
> --
> Freeman Fang
> ------------------------
> Open Source SOA: http://fusesource.com
>
>
>
--
View this message in context: http://www.nabble.com/-SMX4--Error-exposing-a-HTTP-Provider-SU-through-OSGi-tp24325328p24332323.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.
Re: [SMX4] Error exposing a HTTP Provider SU through OSGi
Posted by Freeman Fang <fr...@gmail.com>.
Hi,
My comment inline
On 2009-7-3, at 下午11:59, TheWinch wrote:
>
> Hello all,
>
> I followed the excellent tutorial from
> http://cwiki.apache.org/SMX4/creating-an-osgi-bundle-for-deploying-jbi-endpoints.html
> here . I managed to run the tutorial to end, which means that I can
> deploy
> ServiceMix::File and ServiceMix::Bean service units using OSGi.
>
> I used the same process to expose a ServiceMix::HTTP provider SU
> (find code
> below).
> When I deploy my bundle, I get the following error:
>
>
>
>> Unable to create application context for
>> [eu.diva.tis.messaging.organizations.soap-connector], unsatisfied
>> dependencies: none
>> org.springframework.beans.factory.BeanDefinitionStoreException:
>> Failed to
>> load type: org.apache.servicemix.http.endpoints.HttpProviderEndpoint.
>> Reason: java.lang.ClassNotFoundException:
>> org.apache.servicemix.http.endpoints.HttpProviderEndpoint; nested
>> exception is java.lang.ClassNotFoundException:
>> org.apache.servicemix.http.endpoints.HttpProviderEndpoint
>>
>
> I thought this was because my pom.xml only specified
> org.apache.servicemix.http in the Import-Package section, so I added
> ...http.endpoints. But then I get this exception :
>
>
>
>> org.osgi.framework.BundleException: Unresolved constraint in bundle
>> 165:
>> package; (package=org.apache.servicemix.http.endpoint)
>>
>
> I guess the solution is either to embed servicemix-http in the
> bundle, or
> try a way to get the ....http.ednpoint package imported. But I can't
> find
> how. Does someone have a solution ?
>
> POM.xml:
>
>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <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>eu.diva.tis.messaging.organizations</groupId>
>> <artifactId>soap-connector</artifactId>
>> <packaging>bundle</packaging>
>> <name>DiVA :: Messaging :: Organizations SOAP Connector</name>
>> <version>0.0.1-SNAPSHOT</version>
>> <dependencies>
>> <dependency>
>> <groupId>org.apache.servicemix</groupId>
>> <artifactId>servicemix-http</artifactId>
>> <version>2009.01</version>
>> </dependency>
>> </dependencies>
>> <build>
>> <resources>
>> <resource>
>> <directory>src/main/resources</directory>
>> <includes>
>> <include>**/*</include>
>> </includes>
>> </resource>
>> </resources>
>> <plugins>
>> <!-- configure the bundle plugin with some additional imports
>> -->
>> <plugin>
>> <groupId>org.apache.felix</groupId>
>> <artifactId>maven-bundle-plugin</artifactId>
>> <version>2.0.0</version>
>> <extensions>true</extensions>
>> <configuration>
>> <instructions>
>>
>> <Import-
>> Package
>> >
>> org
>> .apache
>> .servicemix
>> .http
>> ,org
>> .apache
>> .servicemix
>> .http
>> .endpoint
>> ,org.apache.servicemix.bean,org.apache.servicemix.common.osgi,*</
>> Import-Package>
it should be ...http.endpoints but not ...http.endpoint
>>
>> </instructions>
>> </configuration>
>> </plugin>
>> </plugins>
>> </build>
>> <properties>
>> <servicemix-version>4.0.0</servicemix-version>
>> </properties>
>> </project>
>>
>
>
> META-INF/spring/beans.xml :
>
>
>
>> <?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:http="http://servicemix.apache.org/http/1.0"
>> xmlns:msg="http://tis.diva.eu/messaging"
>> xsi:schemaLocation="
>> http://www.springframework.org/schema/beans
>> http://www.springframework.org/schema/beans/spring-
>> beans.xsd
>> http://servicemix.apache.org/http/1.0
>>
>> http://servicemix.apache.org/schema/servicemix-http-2009.01.xsd" >
>>
>> <!-- use this special class to register the endpoints with the
>> NMR -->
>> <bean
>> class="org.apache.servicemix.common.osgi.EndpointExporter" />
>>
>> <http:provider service="msg:organizations"
>> endpoint="soap"
>> locationURI="http://localhost:9003/OrganizationService
>> "
>> />
>>
>> </beans>
>>
> --
> View this message in context: http://www.nabble.com/-SMX4--Error-exposing-a-HTTP-Provider-SU-through-OSGi-tp24325328p24325328.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>
--
Freeman Fang
------------------------
Open Source SOA: http://fusesource.com