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