You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@felix.apache.org by David Allen <da...@velograf.com> on 2010/08/23 08:43:27 UTC

ipojo + Jersey?

I have an extensive application wired using iPojo (love it!) but now I want to create a REST API bundle where servlets are registered through pax-web.

I was looking at Jersey for building out the endpoints, but I can't seem to get Jersey/iPojo to play well. I have been able to run their OSGI examples just fine, but when I try to replace the Activator with a Jersey ServletContainer (or wrapper, or extendsion, etc) I get all sorts of errors. I've also done the iPojo model fusion servlet example just fine.

Has anyone successfully wired up Jersey servlets using iPojo? If not, is anyone using Restlet or a similar library with iPojo?

Cheers,
David Allen

David Allen
veloGraf Systems
dave@velograf.com




---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org


Re: ipojo + Jersey?

Posted by Reto Bachmann-Gmuer <re...@trialox.org>.
Hi David

You might be interested in Clerezza - Triaxrs [1]. This jax-rs
implementations picks up any service implementing java.lang.Object
annotated with a property of type Boolean named javax.ws.rs set to
true as root resource or provider.

Note that the tutorila contains outdated package names (not yet
apache), see the project dependency page [2] for the current versions,
and feel free to ask.

Cheers,
reto

1. http://incubator.apache.org/clerezza/mvn-site/org.apache.clerezza.triaxrs.parent/org.apache.clerezza.triaxrs/index.html
2. http://incubator.apache.org/clerezza/mvn-site/org.apache.clerezza.triaxrs.parent/org.apache.clerezza.triaxrs/dependencies.html

On Mon, Aug 23, 2010 at 8:43 AM, David Allen <da...@velograf.com> wrote:
> I have an extensive application wired using iPojo (love it!) but now I want to create a REST API bundle where servlets are registered through pax-web.
>
> I was looking at Jersey for building out the endpoints, but I can't seem to get Jersey/iPojo to play well. I have been able to run their OSGI examples just fine, but when I try to replace the Activator with a Jersey ServletContainer (or wrapper, or extendsion, etc) I get all sorts of errors. I've also done the iPojo model fusion servlet example just fine.
>
> Has anyone successfully wired up Jersey servlets using iPojo? If not, is anyone using Restlet or a similar library with iPojo?
>
> Cheers,
> David Allen
>
> David Allen
> veloGraf Systems
> dave@velograf.com
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
> For additional commands, e-mail: users-help@felix.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org


Re: ipojo + Jersey?

Posted by Clement Escoffier <cl...@gmail.com>.
Hi,
On 25.08.2010, at 18:46, David Allen wrote:

> I have found several references to spring and guice as DI mechanisms. It seems that a "provider" is needed to tell Jersey how to handle DI.
> 
> I'm looking at https://jersey.dev.java.net/nonav/apidocs/latest/jersey/com/sun/jersey/core/spi/component/ioc/package-summary.html to see if I can put something together with iPojo.

Yes, I've found that too.
As jersey is also managing the lifecycle, it can clash with iPOJO (especially if some dependencies become invalid). However, if it's possible to let iPOJO creating the object, then it should work.

Regards,

Clement 

> 
> David
> 
> 
> On Aug 24, 2010, at 1:42 PM, David Allen wrote:
> 
>> Sorry, I spent so much time hoping to get the example going for you quickly that I TOTALLY missed the point... My Jersey resource needs access to other components of the system to construct the response, but when I try to add @Requires in the resource code it doesn't seem to pick anything up. So I tried a lot of things with setting up Jersey and wrapping classes, etc. to no avail.
>> 
>> For instance, let's say there is a component that provides the current status:
>> 
>> public interface StatusProvider {
>> 
>>  String getStatus();
>> 
>> }
>> 
>> @Component(immediate=true)
>> @Provides
>> public class StatusProviderImpl implements StatusProvider {
>> 
>>  @Override
>>  public String getStatus() {
>>    return "active";
>>  }
>> 
>> }
>> 
>> @Component(immediate=true)
>> @Path("status")
>> public class StatusResource {
>> 
>>  @Requires
>>  private StatusProvider status;
>> 
>>  @GET
>>  @Produces("text/plain")
>>  public String getStatus() {
>>      return status.getStatus();
>>  }
>> 
>> }
>> XML Config -
>> <ipojo>
>>  <instance component="com.sun.jersey.samples.osgihttpservice. StatusProviderImpl"/>
>>  <instance component="com.sun.jersey.samples.osgihttpservice.StatusResource"/>
>>  <instance component="com.sun.jersey.samples.osgihttpservice.JerseyComponent"/>
>> </ipojo>
>> 
>> When I fire this up and hit the url, then I get a null pointer for the StatusProvider.
>> 
>> Hopefully it is just something dead simple that I am overlooking.
>> 
>> Thanks again,
>> David
>> 
>> On Aug 24, 2010, at 9:46 AM, Clement Escoffier wrote:
>> 
>>> Hi,
>>> 
>>> So, I've tested and didn't get any issue. Here are my bundles (also deploy your feature)
>>> 000047 ACT osgi.cmpn-4.2.0.200908310645
>>> 000048 ACT org.apache.felix.ipojo-1.6.0
>>> 000049 ACT ipojo-bundle-1.3  <-- the bundle I've created
>>> 
>>> My component is quite simple:
>>> @Component(immediate=true)
>>> public class JerseyComponent {
>>> 
>>> 	@Bind
>>> 	public void bindHttp(HttpService http) {
>>>       registerServlets(http);
>>> 	}
>>> 
>>> 	@Unbind
>>> 	public void unbindHttp(HttpService http) {
>>>       unregisterServlets(http);
>>> 	}
>>> 
>>> 	private void registerServlets(HttpService http) {
>>>       try {
>>>           rawRegisterServlets(http);
>>>       } catch (Exception ie) {
>>>           throw new RuntimeException(ie);
>>>       }
>>>   }
>>> 
>>>   private void rawRegisterServlets(HttpService http) throws ServletException, NamespaceException, InterruptedException {
>>>       http.registerServlet("/jersey-http-service-ipojo", new ServletContainer(), getJerseyServletParams(), null);
>>>   }
>>> 
>>>   private void unregisterServlets(HttpService http) {
>>>       http.unregister("/jersey-http-service-ipojo");
>>>   }
>>> 
>>>   private Dictionary<String, String> getJerseyServletParams() {
>>>       Dictionary<String, String> jerseyServletParams = new Hashtable<String, String>();
>>>       jerseyServletParams.put("javax.ws.rs.Application", JerseyApplication.class.getName());
>>>       return jerseyServletParams;
>>>   }
>>> 
>>> }
>>> 
>>> Obviously, I've declared an instance in my metadata:
>>> 	<instance component="org.apache.felix.ipojo.jersey.JerseyComponent" />
>>> 
>>> The rest of the code is identical.
>>> 
>>> Could you give me more details about the issue ?
>>> 
>>> Regards,
>>> 
>>> Clement
>>> 
>>> On 23.08.2010, at 18:14, David Allen wrote:
>>> 
>>>> Hello Clement -
>>>> 
>>>> Here is the example project from the Jersey group:
>>>> 
>>>> http://download.java.net/maven/2/com/sun/jersey/samples/osgi-http-service/1.3/osgi-http-service-1.3-project.zip
>>>> 
>>>> Here is a feature I use to get all the dependencies and load it:
>>>> 
>>>> <feature name="restful" version="1.0">
>>>>  <feature>http</feature>
>>>>  <bundle>mvn:javax.ws.rs/jsr311-api/1.1.1</bundle>
>>>>  <bundle>mvn:org.ops4j.pax.web/pax-web-extender-whiteboard/0.7.1</bundle>
>>>>  <bundle>mvn:javax.xml.stream/com.springsource.javax.xml.stream/1.0.1</bundle>
>>>>  <bundle>mvn:javax.activation/com.springsource.javax.activation/1.1.1</bundle>
>>>>  <bundle>mvn:javax.xml.bind/com.springsource.javax.xml.bind/2.2.0</bundle>
>>>>  <bundle>mvn:com.sun.jersey/jersey-core/1.3</bundle>
>>>>  <bundle>mvn:com.sun.jersey/jersey-server/1.3</bundle>
>>>>  <bundle>mvn:com.sun.jersey.samples.osgi-http-service/bundle/1.3</bundle>
>>>> </feature>
>>>> 
>>>> When I hit http://localhost:8181/jersey-http-service/status I get the correct "active" response.
>>>> 
>>>> Hopefully I didn't miss anything. Let me know if you need more information.
>>>> 
>>>> Thank you!
>>>> David
>>>> 
>>>> 
>>>> On Aug 23, 2010, at 2:27 AM, Clement Escoffier wrote:
>>>> 
>>>>> Hi,
>>>>> 
>>>>> Can send me or give me the url where to get the Jersey OSGi example ?
>>>>> 
>>>>> Regards,
>>>>> 
>>>>> Clement
>>>>> 
>>>>> On 23.08.2010, at 08:43, David Allen wrote:
>>>>> 
>>>>>> I have an extensive application wired using iPojo (love it!) but now I want to create a REST API bundle where servlets are registered through pax-web.
>>>>>> 
>>>>>> I was looking at Jersey for building out the endpoints, but I can't seem to get Jersey/iPojo to play well. I have been able to run their OSGI examples just fine, but when I try to replace the Activator with a Jersey ServletContainer (or wrapper, or extendsion, etc) I get all sorts of errors. I've also done the iPojo model fusion servlet example just fine.
>>>>>> 
>>>>>> Has anyone successfully wired up Jersey servlets using iPojo? If not, is anyone using Restlet or a similar library with iPojo?
>>>>>> 
>>>>>> Cheers,
>>>>>> David Allen
>>>>>> 
>>>>>> David Allen
>>>>>> veloGraf Systems
>>>>>> dave@velograf.com
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>>>>> For additional commands, e-mail: users-help@felix.apache.org
>>>>>> 
>>>>> 
>>>>> 
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>>>> For additional commands, e-mail: users-help@felix.apache.org
>>>>> 
>>>> 
>>>> 
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>>> For additional commands, e-mail: users-help@felix.apache.org
>>>> 
>>> 
>> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org


Re: ipojo + Jersey?

Posted by David Allen <da...@velograf.com>.
I have found several references to spring and guice as DI mechanisms. It seems that a "provider" is needed to tell Jersey how to handle DI.

I'm looking at https://jersey.dev.java.net/nonav/apidocs/latest/jersey/com/sun/jersey/core/spi/component/ioc/package-summary.html to see if I can put something together with iPojo.

David


On Aug 24, 2010, at 1:42 PM, David Allen wrote:

> Sorry, I spent so much time hoping to get the example going for you quickly that I TOTALLY missed the point... My Jersey resource needs access to other components of the system to construct the response, but when I try to add @Requires in the resource code it doesn't seem to pick anything up. So I tried a lot of things with setting up Jersey and wrapping classes, etc. to no avail.
> 
> For instance, let's say there is a component that provides the current status:
> 
> public interface StatusProvider {
> 
>   String getStatus();
> 
> }
> 
> @Component(immediate=true)
> @Provides
> public class StatusProviderImpl implements StatusProvider {
> 
>   @Override
>   public String getStatus() {
>     return "active";
>   }
> 
> }
> 
> @Component(immediate=true)
> @Path("status")
> public class StatusResource {
> 
>   @Requires
>   private StatusProvider status;
> 
>   @GET
>   @Produces("text/plain")
>   public String getStatus() {
>       return status.getStatus();
>   }
> 
> }
> XML Config -
> <ipojo>
>   <instance component="com.sun.jersey.samples.osgihttpservice. StatusProviderImpl"/>
>   <instance component="com.sun.jersey.samples.osgihttpservice.StatusResource"/>
>   <instance component="com.sun.jersey.samples.osgihttpservice.JerseyComponent"/>
> </ipojo>
> 
> When I fire this up and hit the url, then I get a null pointer for the StatusProvider.
> 
> Hopefully it is just something dead simple that I am overlooking.
> 
> Thanks again,
> David
> 
> On Aug 24, 2010, at 9:46 AM, Clement Escoffier wrote:
> 
>> Hi,
>> 
>> So, I've tested and didn't get any issue. Here are my bundles (also deploy your feature)
>> 000047 ACT osgi.cmpn-4.2.0.200908310645
>> 000048 ACT org.apache.felix.ipojo-1.6.0
>> 000049 ACT ipojo-bundle-1.3  <-- the bundle I've created
>> 
>> My component is quite simple:
>> @Component(immediate=true)
>> public class JerseyComponent {
>> 
>> 	@Bind
>> 	public void bindHttp(HttpService http) {
>>        registerServlets(http);
>> 	}
>> 
>> 	@Unbind
>> 	public void unbindHttp(HttpService http) {
>>        unregisterServlets(http);
>> 	}
>> 
>> 	private void registerServlets(HttpService http) {
>>        try {
>>            rawRegisterServlets(http);
>>        } catch (Exception ie) {
>>            throw new RuntimeException(ie);
>>        }
>>    }
>> 
>>    private void rawRegisterServlets(HttpService http) throws ServletException, NamespaceException, InterruptedException {
>>        http.registerServlet("/jersey-http-service-ipojo", new ServletContainer(), getJerseyServletParams(), null);
>>    }
>> 
>>    private void unregisterServlets(HttpService http) {
>>        http.unregister("/jersey-http-service-ipojo");
>>    }
>> 
>>    private Dictionary<String, String> getJerseyServletParams() {
>>        Dictionary<String, String> jerseyServletParams = new Hashtable<String, String>();
>>        jerseyServletParams.put("javax.ws.rs.Application", JerseyApplication.class.getName());
>>        return jerseyServletParams;
>>    }
>> 
>> }
>> 
>> Obviously, I've declared an instance in my metadata:
>> 	<instance component="org.apache.felix.ipojo.jersey.JerseyComponent" />
>> 
>> The rest of the code is identical.
>> 
>> Could you give me more details about the issue ?
>> 
>> Regards,
>> 
>> Clement
>> 
>> On 23.08.2010, at 18:14, David Allen wrote:
>> 
>>> Hello Clement -
>>> 
>>> Here is the example project from the Jersey group:
>>> 
>>> http://download.java.net/maven/2/com/sun/jersey/samples/osgi-http-service/1.3/osgi-http-service-1.3-project.zip
>>> 
>>> Here is a feature I use to get all the dependencies and load it:
>>> 
>>> <feature name="restful" version="1.0">
>>>   <feature>http</feature>
>>>   <bundle>mvn:javax.ws.rs/jsr311-api/1.1.1</bundle>
>>>   <bundle>mvn:org.ops4j.pax.web/pax-web-extender-whiteboard/0.7.1</bundle>
>>>   <bundle>mvn:javax.xml.stream/com.springsource.javax.xml.stream/1.0.1</bundle>
>>>   <bundle>mvn:javax.activation/com.springsource.javax.activation/1.1.1</bundle>
>>>   <bundle>mvn:javax.xml.bind/com.springsource.javax.xml.bind/2.2.0</bundle>
>>>   <bundle>mvn:com.sun.jersey/jersey-core/1.3</bundle>
>>>   <bundle>mvn:com.sun.jersey/jersey-server/1.3</bundle>
>>>   <bundle>mvn:com.sun.jersey.samples.osgi-http-service/bundle/1.3</bundle>
>>> </feature>
>>> 
>>> When I hit http://localhost:8181/jersey-http-service/status I get the correct "active" response.
>>> 
>>> Hopefully I didn't miss anything. Let me know if you need more information.
>>> 
>>> Thank you!
>>> David
>>> 
>>> 
>>> On Aug 23, 2010, at 2:27 AM, Clement Escoffier wrote:
>>> 
>>>> Hi,
>>>> 
>>>> Can send me or give me the url where to get the Jersey OSGi example ?
>>>> 
>>>> Regards,
>>>> 
>>>> Clement
>>>> 
>>>> On 23.08.2010, at 08:43, David Allen wrote:
>>>> 
>>>>> I have an extensive application wired using iPojo (love it!) but now I want to create a REST API bundle where servlets are registered through pax-web.
>>>>> 
>>>>> I was looking at Jersey for building out the endpoints, but I can't seem to get Jersey/iPojo to play well. I have been able to run their OSGI examples just fine, but when I try to replace the Activator with a Jersey ServletContainer (or wrapper, or extendsion, etc) I get all sorts of errors. I've also done the iPojo model fusion servlet example just fine.
>>>>> 
>>>>> Has anyone successfully wired up Jersey servlets using iPojo? If not, is anyone using Restlet or a similar library with iPojo?
>>>>> 
>>>>> Cheers,
>>>>> David Allen
>>>>> 
>>>>> David Allen
>>>>> veloGraf Systems
>>>>> dave@velograf.com
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>>>> For additional commands, e-mail: users-help@felix.apache.org
>>>>> 
>>>> 
>>>> 
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>>> For additional commands, e-mail: users-help@felix.apache.org
>>>> 
>>> 
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>> For additional commands, e-mail: users-help@felix.apache.org
>>> 
>> 
> 


Re: ipojo + Jersey?

Posted by David Allen <da...@velograf.com>.
Sorry, I spent so much time hoping to get the example going for you quickly that I TOTALLY missed the point... My Jersey resource needs access to other components of the system to construct the response, but when I try to add @Requires in the resource code it doesn't seem to pick anything up. So I tried a lot of things with setting up Jersey and wrapping classes, etc. to no avail.

For instance, let's say there is a component that provides the current status:

public interface StatusProvider {

  String getStatus();

}

@Component(immediate=true)
@Provides
public class StatusProviderImpl implements StatusProvider {

  @Override
  public String getStatus() {
    return "active";
  }

}

@Component(immediate=true)
@Path("status")
public class StatusResource {

  @Requires
  private StatusProvider status;

  @GET
  @Produces("text/plain")
  public String getStatus() {
      return status.getStatus();
  }

}
XML Config -
<ipojo>
  <instance component="com.sun.jersey.samples.osgihttpservice. StatusProviderImpl"/>
  <instance component="com.sun.jersey.samples.osgihttpservice.StatusResource"/>
  <instance component="com.sun.jersey.samples.osgihttpservice.JerseyComponent"/>
</ipojo>

When I fire this up and hit the url, then I get a null pointer for the StatusProvider.

Hopefully it is just something dead simple that I am overlooking.

Thanks again,
David

On Aug 24, 2010, at 9:46 AM, Clement Escoffier wrote:

> Hi,
> 
> So, I've tested and didn't get any issue. Here are my bundles (also deploy your feature)
> 000047 ACT osgi.cmpn-4.2.0.200908310645
> 000048 ACT org.apache.felix.ipojo-1.6.0
> 000049 ACT ipojo-bundle-1.3  <-- the bundle I've created
> 
> My component is quite simple:
> @Component(immediate=true)
> public class JerseyComponent {
> 
> 	@Bind
> 	public void bindHttp(HttpService http) {
>        registerServlets(http);
> 	}
> 
> 	@Unbind
> 	public void unbindHttp(HttpService http) {
>        unregisterServlets(http);
> 	}
> 
> 	private void registerServlets(HttpService http) {
>        try {
>            rawRegisterServlets(http);
>        } catch (Exception ie) {
>            throw new RuntimeException(ie);
>        }
>    }
> 
>    private void rawRegisterServlets(HttpService http) throws ServletException, NamespaceException, InterruptedException {
>        http.registerServlet("/jersey-http-service-ipojo", new ServletContainer(), getJerseyServletParams(), null);
>    }
> 
>    private void unregisterServlets(HttpService http) {
>        http.unregister("/jersey-http-service-ipojo");
>    }
> 
>    private Dictionary<String, String> getJerseyServletParams() {
>        Dictionary<String, String> jerseyServletParams = new Hashtable<String, String>();
>        jerseyServletParams.put("javax.ws.rs.Application", JerseyApplication.class.getName());
>        return jerseyServletParams;
>    }
> 
> }
> 
> Obviously, I've declared an instance in my metadata:
> 	<instance component="org.apache.felix.ipojo.jersey.JerseyComponent" />
> 
> The rest of the code is identical.
> 
> Could you give me more details about the issue ?
> 
> Regards,
> 
> Clement
> 
> On 23.08.2010, at 18:14, David Allen wrote:
> 
>> Hello Clement -
>> 
>> Here is the example project from the Jersey group:
>> 
>> http://download.java.net/maven/2/com/sun/jersey/samples/osgi-http-service/1.3/osgi-http-service-1.3-project.zip
>> 
>> Here is a feature I use to get all the dependencies and load it:
>> 
>> <feature name="restful" version="1.0">
>>   <feature>http</feature>
>>   <bundle>mvn:javax.ws.rs/jsr311-api/1.1.1</bundle>
>>   <bundle>mvn:org.ops4j.pax.web/pax-web-extender-whiteboard/0.7.1</bundle>
>>   <bundle>mvn:javax.xml.stream/com.springsource.javax.xml.stream/1.0.1</bundle>
>>   <bundle>mvn:javax.activation/com.springsource.javax.activation/1.1.1</bundle>
>>   <bundle>mvn:javax.xml.bind/com.springsource.javax.xml.bind/2.2.0</bundle>
>>   <bundle>mvn:com.sun.jersey/jersey-core/1.3</bundle>
>>   <bundle>mvn:com.sun.jersey/jersey-server/1.3</bundle>
>>   <bundle>mvn:com.sun.jersey.samples.osgi-http-service/bundle/1.3</bundle>
>> </feature>
>> 
>> When I hit http://localhost:8181/jersey-http-service/status I get the correct "active" response.
>> 
>> Hopefully I didn't miss anything. Let me know if you need more information.
>> 
>> Thank you!
>> David
>> 
>> 
>> On Aug 23, 2010, at 2:27 AM, Clement Escoffier wrote:
>> 
>>> Hi,
>>> 
>>> Can send me or give me the url where to get the Jersey OSGi example ?
>>> 
>>> Regards,
>>> 
>>> Clement
>>> 
>>> On 23.08.2010, at 08:43, David Allen wrote:
>>> 
>>>> I have an extensive application wired using iPojo (love it!) but now I want to create a REST API bundle where servlets are registered through pax-web.
>>>> 
>>>> I was looking at Jersey for building out the endpoints, but I can't seem to get Jersey/iPojo to play well. I have been able to run their OSGI examples just fine, but when I try to replace the Activator with a Jersey ServletContainer (or wrapper, or extendsion, etc) I get all sorts of errors. I've also done the iPojo model fusion servlet example just fine.
>>>> 
>>>> Has anyone successfully wired up Jersey servlets using iPojo? If not, is anyone using Restlet or a similar library with iPojo?
>>>> 
>>>> Cheers,
>>>> David Allen
>>>> 
>>>> David Allen
>>>> veloGraf Systems
>>>> dave@velograf.com
>>>> 
>>>> 
>>>> 
>>>> 
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>>> For additional commands, e-mail: users-help@felix.apache.org
>>>> 
>>> 
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>> For additional commands, e-mail: users-help@felix.apache.org
>>> 
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>> For additional commands, e-mail: users-help@felix.apache.org
>> 
> 


Re: ipojo + Jersey?

Posted by Clement Escoffier <cl...@gmail.com>.
Hi,

So, I've tested and didn't get any issue. Here are my bundles (also deploy your feature)
000047 ACT osgi.cmpn-4.2.0.200908310645
000048 ACT org.apache.felix.ipojo-1.6.0
000049 ACT ipojo-bundle-1.3  <-- the bundle I've created

My component is quite simple:
@Component(immediate=true)
public class JerseyComponent {

	@Bind
	public void bindHttp(HttpService http) {
        registerServlets(http);
	}

	@Unbind
	public void unbindHttp(HttpService http) {
        unregisterServlets(http);
	}

	private void registerServlets(HttpService http) {
        try {
            rawRegisterServlets(http);
        } catch (Exception ie) {
            throw new RuntimeException(ie);
        }
    }

    private void rawRegisterServlets(HttpService http) throws ServletException, NamespaceException, InterruptedException {
        http.registerServlet("/jersey-http-service-ipojo", new ServletContainer(), getJerseyServletParams(), null);
    }

    private void unregisterServlets(HttpService http) {
        http.unregister("/jersey-http-service-ipojo");
    }

    private Dictionary<String, String> getJerseyServletParams() {
        Dictionary<String, String> jerseyServletParams = new Hashtable<String, String>();
        jerseyServletParams.put("javax.ws.rs.Application", JerseyApplication.class.getName());
        return jerseyServletParams;
    }

}

Obviously, I've declared an instance in my metadata:
	<instance component="org.apache.felix.ipojo.jersey.JerseyComponent" />

The rest of the code is identical.

Could you give me more details about the issue ?

Regards,

Clement

On 23.08.2010, at 18:14, David Allen wrote:

> Hello Clement -
> 
> Here is the example project from the Jersey group:
> 
> http://download.java.net/maven/2/com/sun/jersey/samples/osgi-http-service/1.3/osgi-http-service-1.3-project.zip
> 
> Here is a feature I use to get all the dependencies and load it:
> 
> <feature name="restful" version="1.0">
>    <feature>http</feature>
>    <bundle>mvn:javax.ws.rs/jsr311-api/1.1.1</bundle>
>    <bundle>mvn:org.ops4j.pax.web/pax-web-extender-whiteboard/0.7.1</bundle>
>    <bundle>mvn:javax.xml.stream/com.springsource.javax.xml.stream/1.0.1</bundle>
>    <bundle>mvn:javax.activation/com.springsource.javax.activation/1.1.1</bundle>
>    <bundle>mvn:javax.xml.bind/com.springsource.javax.xml.bind/2.2.0</bundle>
>    <bundle>mvn:com.sun.jersey/jersey-core/1.3</bundle>
>    <bundle>mvn:com.sun.jersey/jersey-server/1.3</bundle>
>    <bundle>mvn:com.sun.jersey.samples.osgi-http-service/bundle/1.3</bundle>
>  </feature>
> 
> When I hit http://localhost:8181/jersey-http-service/status I get the correct "active" response.
> 
> Hopefully I didn't miss anything. Let me know if you need more information.
> 
> Thank you!
> David
> 
> 
> On Aug 23, 2010, at 2:27 AM, Clement Escoffier wrote:
> 
>> Hi,
>> 
>> Can send me or give me the url where to get the Jersey OSGi example ?
>> 
>> Regards,
>> 
>> Clement
>> 
>> On 23.08.2010, at 08:43, David Allen wrote:
>> 
>>> I have an extensive application wired using iPojo (love it!) but now I want to create a REST API bundle where servlets are registered through pax-web.
>>> 
>>> I was looking at Jersey for building out the endpoints, but I can't seem to get Jersey/iPojo to play well. I have been able to run their OSGI examples just fine, but when I try to replace the Activator with a Jersey ServletContainer (or wrapper, or extendsion, etc) I get all sorts of errors. I've also done the iPojo model fusion servlet example just fine.
>>> 
>>> Has anyone successfully wired up Jersey servlets using iPojo? If not, is anyone using Restlet or a similar library with iPojo?
>>> 
>>> Cheers,
>>> David Allen
>>> 
>>> David Allen
>>> veloGraf Systems
>>> dave@velograf.com
>>> 
>>> 
>>> 
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>> For additional commands, e-mail: users-help@felix.apache.org
>>> 
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>> For additional commands, e-mail: users-help@felix.apache.org
>> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
> For additional commands, e-mail: users-help@felix.apache.org
> 


Re: ipojo + Jersey?

Posted by David Allen <da...@velograf.com>.
Hello Clement -

Here is the example project from the Jersey group:

http://download.java.net/maven/2/com/sun/jersey/samples/osgi-http-service/1.3/osgi-http-service-1.3-project.zip

Here is a feature I use to get all the dependencies and load it:

<feature name="restful" version="1.0">
    <feature>http</feature>
    <bundle>mvn:javax.ws.rs/jsr311-api/1.1.1</bundle>
    <bundle>mvn:org.ops4j.pax.web/pax-web-extender-whiteboard/0.7.1</bundle>
    <bundle>mvn:javax.xml.stream/com.springsource.javax.xml.stream/1.0.1</bundle>
    <bundle>mvn:javax.activation/com.springsource.javax.activation/1.1.1</bundle>
    <bundle>mvn:javax.xml.bind/com.springsource.javax.xml.bind/2.2.0</bundle>
    <bundle>mvn:com.sun.jersey/jersey-core/1.3</bundle>
    <bundle>mvn:com.sun.jersey/jersey-server/1.3</bundle>
    <bundle>mvn:com.sun.jersey.samples.osgi-http-service/bundle/1.3</bundle>
  </feature>

When I hit http://localhost:8181/jersey-http-service/status I get the correct "active" response.

Hopefully I didn't miss anything. Let me know if you need more information.

Thank you!
David


On Aug 23, 2010, at 2:27 AM, Clement Escoffier wrote:

> Hi,
> 
> Can send me or give me the url where to get the Jersey OSGi example ?
> 
> Regards,
> 
> Clement
> 
> On 23.08.2010, at 08:43, David Allen wrote:
> 
>> I have an extensive application wired using iPojo (love it!) but now I want to create a REST API bundle where servlets are registered through pax-web.
>> 
>> I was looking at Jersey for building out the endpoints, but I can't seem to get Jersey/iPojo to play well. I have been able to run their OSGI examples just fine, but when I try to replace the Activator with a Jersey ServletContainer (or wrapper, or extendsion, etc) I get all sorts of errors. I've also done the iPojo model fusion servlet example just fine.
>> 
>> Has anyone successfully wired up Jersey servlets using iPojo? If not, is anyone using Restlet or a similar library with iPojo?
>> 
>> Cheers,
>> David Allen
>> 
>> David Allen
>> veloGraf Systems
>> dave@velograf.com
>> 
>> 
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>> For additional commands, e-mail: users-help@felix.apache.org
>> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
> For additional commands, e-mail: users-help@felix.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org


Re: ipojo + Jersey?

Posted by Clement Escoffier <cl...@gmail.com>.
Hi,

Can send me or give me the url where to get the Jersey OSGi example ?

Regards,

Clement

On 23.08.2010, at 08:43, David Allen wrote:

> I have an extensive application wired using iPojo (love it!) but now I want to create a REST API bundle where servlets are registered through pax-web.
> 
> I was looking at Jersey for building out the endpoints, but I can't seem to get Jersey/iPojo to play well. I have been able to run their OSGI examples just fine, but when I try to replace the Activator with a Jersey ServletContainer (or wrapper, or extendsion, etc) I get all sorts of errors. I've also done the iPojo model fusion servlet example just fine.
> 
> Has anyone successfully wired up Jersey servlets using iPojo? If not, is anyone using Restlet or a similar library with iPojo?
> 
> Cheers,
> David Allen
> 
> David Allen
> veloGraf Systems
> dave@velograf.com
> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
> For additional commands, e-mail: users-help@felix.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org