Re: aries-jax-rs-whiteboard with @JaxrsApplicationSelect and @JSONRequired result in 404

2023-01-23 Thread Paul Spencer
Jaap,
In my environment I do not use DS for the JaxrsApplication, thus my application 
class just extends Application with no additional methods for fields.  


The application snippet below accepts a web form and produces plain text from 
the URL /foo/api/webhook and demonstrates a non-default context.


karaf@root()> web:context-list
Bundle ID │ Symbolic Name │ Context Path │ 
Context Name  │ Rank │ Service ID │ Type│ Scope │ 
Registration Properties
──┼───┼──┼───┼──┼┼─┼───┼
108   │ org.apache.cxf.cxf-rt-transports-http │ /│ 
default   │ MAX  │ 0  │ HttpService │ static*   │ 
httpContext.id <http://httpcontext.id/>=default
  │   │  │  
 │  ││ │   │ 
httpContext.path=/
  │   │  │  
 │  ││ │   │ 
osgi.http.whiteboard.context.httpservice=default
  │   │  │  
 │  ││ │   │ 
osgi.http.whiteboard.context.path=/
122   │ org.ops4j.pax.web.pax-web-extender-whiteboard │ /│ 
default   │ 0│ 0  │ Whiteboard  │ static*   │ 
osgi.http.whiteboard.context.name=default
  │   │  │  
 │  ││ │   │ 
osgi.http.whiteboard.context.path=/

97│ org.apache.aries.jax.rs.whiteboard│ /foo/api │ 
context.forfooApi │ 0│ 163│ Whiteboard  │ singleton │ 
osgi.http.whiteboard.context.name=context.forfooApi
  │   │  │  
 │  ││ │   │ 
osgi.http.whiteboard.context.path=/foo/api

karaf@root()> web:servlet-list
Bundle ID │ Name   │ Class  
  │ Context Path(s) │ URLs   │ Type│ Context Filter
──┼┼──┼─┼┼─┼──
97│ cxf-servlet│ 
org.apache.aries.jax.rs.whiteboard.internal.Whiteboard$1 │ /   │ /* 
│ Whiteboard  │ (osgi.http.whiteboard.context.name=default)
97│ cxf-servlet│ 
org.apache.aries.jax.rs.whiteboard.internal.Whiteboard$1 │ /foo/api│ /* 
│ Whiteboard  │ (osgi.http.whiteboard.context.name=context.forfooApi)
108   │ cxf-osgi-transport-servlet │ 
org.apache.cxf.transport.servlet.CXFNonSpringServlet │ /   │ 
/cxf/* │ HttpService │ -
karaf@root()>
***
* Rest application defining context /foo/api
***
package com.example.foo.restapp;

import javax.ws.rs.core.Application;

import org.osgi.service.component.annotations.Component;
import org.osgi.service.jaxrs.whiteboard.propertytypes.JaxrsApplicationBase;
import org.osgi.service.jaxrs.whiteboard.propertytypes.JaxrsName;

@Component(service=Application.class)
@JaxrsName("fooApi")
@JaxrsApplicationBase("/foo/api")
public class FooApplication extends Application{

}

***
* Rest endpoint for /foo/api/webhook
***
...
@Path("/webhook")
@Component( scope = PROTOTYPE)
@JaxrsResource
@JaxrsApplicationSelect("(osgi.jaxrs.name=fooApi)")
public class IncommingWebHook {
...
@POST
@Produces(MediaType.TEXT_PLAIN)
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Path("/incommingMessage")
public Response receiveWebHook(@FormParam(MESSAGE_SID) String messageSid) {
   ...
}
...
}



> On Jan 23, 2023, at 10:05 AM, Jaap Gordijn  wrote:
> 
> Paul,
> 
> I have extended the Application class as follows:
> 
> public class MyApplication extends Application {
> 
> public Set> getClasses() {
> HashSet> set = new HashSet>();
> set.add(Rest.class);
> return set;
>  }
> 
> }
> 
> Now the endpoint resolves.
> 
> But DS dependency injection does not work.
> Is there something needed to switch this on?
> 
> -- Jaap
> 
>> -Original Message-
>> From: Paul Spencer 
>> Sent: maandag 23 januari 2023 15:16
>> To: user@karaf.apache.org
>> Subject: Re: aries-jax-rs-whiteboard with @JaxrsApplicationSelect and
>> @JSONRequired result in 404
>> 
>> Jaap,
>> JaxrsApplicatio

RE: aries-jax-rs-whiteboard with @JaxrsApplicationSelect and @JSONRequired result in 404

2023-01-23 Thread Jaap Gordijn
Paul,

I have extended the Application class as follows:

public class MyApplication extends Application {

  public Set> getClasses() {
  HashSet> set = new HashSet>();
  set.add(Rest.class);
  return set;
   }

}

Now the endpoint resolves.

But DS dependency injection does not work.
Is there something needed to switch this on?

-- Jaap

> -Original Message-
> From: Paul Spencer 
> Sent: maandag 23 januari 2023 15:16
> To: user@karaf.apache.org
> Subject: Re: aries-jax-rs-whiteboard with @JaxrsApplicationSelect and
> @JSONRequired result in 404
> 
> Jaap,
> JaxrsApplicationBase is used with JaxrsApplicationSelect to is required to use
> a non-default context, so your results confirm the default context is working.
> 
> Paul Spencer
> 
> > On Jan 23, 2023, at 9:08 AM, Jaap Gordijn  wrote:
> >
> > Paul,
> >
> > I did the following to create the application.
> >
> > @Component(service=Application.class, property =
> > {"servlet.init.hide-service-list-page=true"} )
> > @JaxrsApplicationBase("example")
> > @JaxrsName("MyApplication")
> > public class MyApplication extends Application {
> >
> > }
> >
> > The strange thing is at that if I remove the @JaxrsApplicationSelect in the
> Rest service class, then it works. But not with the Application class.
> >
> > -- Jaap
> >
> >> -Original Message-
> >> From: Paul Spencer 
> >> Sent: maandag 23 januari 2023 14:11
> >> To: user@karaf.apache.org
> >> Subject: Re: aries-jax-rs-whiteboard with @JaxrsApplicationSelect and
> >> @JSONRequired result in 404
> >>
> >> Jaap,
> >> Have you created the Jaxrs application?
> >>
> >> @Component(service=Application.class)
> >> @JaxrsName("MyApplication")
> >> @JaxrsApplicationBase("/example")
> >> public class MyApp extends Application{
> >>
> >> }
> >>
> >> Paul Spencer
> >>
> >>>> On Jan 23, 2023, at 7:39 AM, Jaap Gordijn  wrote:
> >>>
> >>> Paul,
> >>>
> >>> I used the features as you suggested.
> >>>
> >>> In the log, I see that the Jetty container starts.
> >>> Also the context path is registered:
> >>> Registering
> >>> OsgiServletContext{model=OsgiContextModel{WB,id=OCM-
> >> 5,name='context.fo
> >>> rMyApplication',path='/example',bundle=org.apache.aries.jax.rs.white
> >>> bo ard,ref=[org.osgi.service.http.context.ServletContextHelper]}} as
> >>> OSGi service for "/example" context pat
> >>>
> >>> But then I get this:
> >>> org.apache.cxf.cxf-rt-transports-http - 3.5.5 | Can't find the
> >>> request for http://172.20.116.137:8181/example/person's Observer
> >>>
> >>> Best,
> >>>
> >>> -- Jaap
> >>>
> >>>> -Original Message-
> >>>> From: Paul Spencer 
> >>>> Sent: maandag 23 januari 2023 13:13
> >>>> To: user@karaf.apache.org
> >>>> Subject: Re: aries-jax-rs-whiteboard with @JaxrsApplicationSelect
> >>>> and @JSONRequired result in 404
> >>>>
> >>>> Jaap,
> >>>> 1) You can use the web: commands to verify the expected context
> >>>> exists
> >>>> 2) Review karaf.log  to verify the the bundle startup and post
> >>>> relevant errors
> >>>> 3) I use the following features:
> >>>> jackson
> >>>> pax-web-http-whiteboard
> >>>> aries-jax-rs-whiteboard
> >>>> aries-jax-rs-whiteboard-jackson
> >>>>
> >>>> Paul Spencer
> >>>>
> >>>>>> On Jan 23, 2023, at 4:49 AM, Jaap Gordijn  wrote:
> >>>>>
> >>>>> Hi,
> >>>>>
> >>>>> I have a problem with aries-jax-rs-whiteboard and the use of
> >>>>> @JaxrsApplicationSelect and @JSONRequired in combination.
> >>>>> That results in an inaccessible service (404).
> >>>>> If I disable the JSON annotations, the /test service works (via
> >>>>> /example/text
> >>>>>
> >>>>> Code:
> >>>>>
> >>>>> @Component(service = Rest.class, scope = ServiceScope.PROTOTYPE)
> >>>>> @JaxrsResourc

Re: aries-jax-rs-whiteboard with @JaxrsApplicationSelect and @JSONRequired result in 404

2023-01-23 Thread Paul Spencer
Jaap,
Have you created the Jaxrs application?

@Component(service=Application.class)
@JaxrsName("MyApplication")
@JaxrsApplicationBase("/example")
public class MyApp extends Application{

}

Paul Spencer

> On Jan 23, 2023, at 7:39 AM, Jaap Gordijn  wrote:
> 
> Paul,
> 
> I used the features as you suggested.
> 
> In the log, I see that the Jetty container starts.
> Also the context path is registered:
> Registering 
> OsgiServletContext{model=OsgiContextModel{WB,id=OCM-5,name='context.forMyApplication',path='/example',bundle=org.apache.aries.jax.rs.whiteboard,ref=[org.osgi.service.http.context.ServletContextHelper]}}
>  as OSGi service for "/example" context pat
> 
> But then I get this:
> org.apache.cxf.cxf-rt-transports-http - 3.5.5 | Can't find the request for 
> http://172.20.116.137:8181/example/person's Observer
> 
> Best,
> 
> -- Jaap
> 
>> -Original Message-
>> From: Paul Spencer 
>> Sent: maandag 23 januari 2023 13:13
>> To: user@karaf.apache.org
>> Subject: Re: aries-jax-rs-whiteboard with @JaxrsApplicationSelect and
>> @JSONRequired result in 404
>> 
>> Jaap,
>> 1) You can use the web: commands to verify the expected context exists
>> 2) Review karaf.log  to verify the the bundle startup and post relevant 
>> errors
>> 3) I use the following features:
>>  jackson
>> pax-web-http-whiteboard
>> aries-jax-rs-whiteboard
>> aries-jax-rs-whiteboard-jackson
>> 
>> Paul Spencer
>> 
>>>> On Jan 23, 2023, at 4:49 AM, Jaap Gordijn  wrote:
>>> 
>>> Hi,
>>> 
>>> I have a problem with aries-jax-rs-whiteboard and the use of
>>> @JaxrsApplicationSelect and @JSONRequired in combination.
>>> That results in an inaccessible service (404).
>>> If I disable the JSON annotations, the /test service works (via
>>> /example/text
>>> 
>>> Code:
>>> 
>>> @Component(service = Rest.class, scope = ServiceScope.PROTOTYPE)
>>> @JaxrsResource @JaxrsApplicationSelect("(" +
>>> JaxrsWhiteboardConstants.JAX_RS_NAME +
>>> "=MyApplication)")
>>> @JSONRequired
>>> @Produces(MediaType.APPLICATION_JSON)
>>> public class Rest {
>>> 
>>>   @Reference(scope=ReferenceScope.PROTOTYPE_REQUIRED)
>>>   private volatile PersonService personService;
>>> 
>>>   @GET
>>>   @Path("/person")
>>>   public List listPersons() {
>>>   return personService.select();
>>>   }
>>> 
>>>   @GET
>>>   @Path("/test")
>>>   public String test() {
>>>   return "test";
>>>   }
>>> }
>>> 
>>> @Component(service=Application.class, property =
>>> {"servlet.init.hide-service-list-page=true"} )
>>> @JaxrsApplicationBase("example")
>>> @JaxrsName("MyApplication")
>>> public class MyApplication extends Application {
>>> 
>>> }
>>> 
>>> 
>>> mvn:org.apache.cxf.karaf/apache-cxf/3.5.5/xml/features>> posito
>>> ry>
>>> 
>>> mvn:org.apache.aries.jax.rs/org.apache.aries.jax.rs.featur
>>> es/2.0
>>> .2/xml>>  
>>>  hibernate
>>>  hibernate-validator
>>>  ...
>>> 
>>> I use Karaf 4.4.3
>>> 
>>> Any ideas?
>>> 
>>> Best,
>>> 
>>> -- Jaap
>>> 
> 


RE: aries-jax-rs-whiteboard with @JaxrsApplicationSelect and @JSONRequired result in 404

2023-01-23 Thread Jaap Gordijn
Paul,

I did the following to create the application.

@Component(service=Application.class, property =  
{"servlet.init.hide-service-list-page=true"} )
@JaxrsApplicationBase("example")
@JaxrsName("MyApplication")
public class MyApplication extends Application {
   
}

The strange thing is at that if I remove the @JaxrsApplicationSelect in the 
Rest service class, then it works. But not with the Application class.

-- Jaap

> -Original Message-
> From: Paul Spencer 
> Sent: maandag 23 januari 2023 14:11
> To: user@karaf.apache.org
> Subject: Re: aries-jax-rs-whiteboard with @JaxrsApplicationSelect and
> @JSONRequired result in 404
> 
> Jaap,
> Have you created the Jaxrs application?
> 
> @Component(service=Application.class)
> @JaxrsName("MyApplication")
> @JaxrsApplicationBase("/example")
> public class MyApp extends Application{
> 
> }
> 
> Paul Spencer
> 
> > On Jan 23, 2023, at 7:39 AM, Jaap Gordijn  wrote:
> >
> > Paul,
> >
> > I used the features as you suggested.
> >
> > In the log, I see that the Jetty container starts.
> > Also the context path is registered:
> > Registering
> > OsgiServletContext{model=OsgiContextModel{WB,id=OCM-
> 5,name='context.fo
> > rMyApplication',path='/example',bundle=org.apache.aries.jax.rs.whitebo
> > ard,ref=[org.osgi.service.http.context.ServletContextHelper]}} as OSGi
> > service for "/example" context pat
> >
> > But then I get this:
> > org.apache.cxf.cxf-rt-transports-http - 3.5.5 | Can't find the request
> > for http://172.20.116.137:8181/example/person's Observer
> >
> > Best,
> >
> > -- Jaap
> >
> >> -Original Message-
> >> From: Paul Spencer 
> >> Sent: maandag 23 januari 2023 13:13
> >> To: user@karaf.apache.org
> >> Subject: Re: aries-jax-rs-whiteboard with @JaxrsApplicationSelect and
> >> @JSONRequired result in 404
> >>
> >> Jaap,
> >> 1) You can use the web: commands to verify the expected context
> >> exists
> >> 2) Review karaf.log  to verify the the bundle startup and post
> >> relevant errors
> >> 3) I use the following features:
> >>  jackson
> >> pax-web-http-whiteboard
> >> aries-jax-rs-whiteboard
> >> aries-jax-rs-whiteboard-jackson
> >>
> >> Paul Spencer
> >>
> >>>> On Jan 23, 2023, at 4:49 AM, Jaap Gordijn  wrote:
> >>>
> >>> Hi,
> >>>
> >>> I have a problem with aries-jax-rs-whiteboard and the use of
> >>> @JaxrsApplicationSelect and @JSONRequired in combination.
> >>> That results in an inaccessible service (404).
> >>> If I disable the JSON annotations, the /test service works (via
> >>> /example/text
> >>>
> >>> Code:
> >>>
> >>> @Component(service = Rest.class, scope = ServiceScope.PROTOTYPE)
> >>> @JaxrsResource @JaxrsApplicationSelect("(" +
> >>> JaxrsWhiteboardConstants.JAX_RS_NAME +
> >>> "=MyApplication)")
> >>> @JSONRequired
> >>> @Produces(MediaType.APPLICATION_JSON)
> >>> public class Rest {
> >>>
> >>>   @Reference(scope=ReferenceScope.PROTOTYPE_REQUIRED)
> >>>   private volatile PersonService personService;
> >>>
> >>>   @GET
> >>>   @Path("/person")
> >>>   public List listPersons() {
> >>>   return personService.select();
> >>>   }
> >>>
> >>>   @GET
> >>>   @Path("/test")
> >>>   public String test() {
> >>>   return "test";
> >>>   }
> >>> }
> >>>
> >>> @Component(service=Application.class, property =
> >>> {"servlet.init.hide-service-list-page=true"} )
> >>> @JaxrsApplicationBase("example")
> >>> @JaxrsName("MyApplication")
> >>> public class MyApplication extends Application {
> >>>
> >>> }
> >>>
> >>>
> >>> mvn:org.apache.cxf.karaf/apache-cxf/3.5.5/xml/features >>> re
> >>> posito
> >>> ry>
> >>>
> >>> mvn:org.apache.aries.jax.rs/org.apache.aries.jax.rs.feat
> >>> ur
> >>> es/2.0
> >>> .2/xml >>>  
> >>>  hibernate
> >>>  hibernate-validator
> >>>  ...
> >>>
> >>> I use Karaf 4.4.3
> >>>
> >>> Any ideas?
> >>>
> >>> Best,
> >>>
> >>> -- Jaap
> >>>
> >



Re: aries-jax-rs-whiteboard with @JaxrsApplicationSelect and @JSONRequired result in 404

2023-01-23 Thread Paul Spencer
Jaap,
JaxrsApplicationBase is used with JaxrsApplicationSelect to is required to use 
a non-default context, so your results confirm the default context is working.

Paul Spencer

> On Jan 23, 2023, at 9:08 AM, Jaap Gordijn  wrote:
> 
> Paul,
> 
> I did the following to create the application.
> 
> @Component(service=Application.class, property =  
> {"servlet.init.hide-service-list-page=true"} )
> @JaxrsApplicationBase("example")
> @JaxrsName("MyApplication")
> public class MyApplication extends Application {
> 
> }
> 
> The strange thing is at that if I remove the @JaxrsApplicationSelect in the 
> Rest service class, then it works. But not with the Application class.
> 
> -- Jaap
> 
>> -Original Message-
>> From: Paul Spencer 
>> Sent: maandag 23 januari 2023 14:11
>> To: user@karaf.apache.org
>> Subject: Re: aries-jax-rs-whiteboard with @JaxrsApplicationSelect and
>> @JSONRequired result in 404
>> 
>> Jaap,
>> Have you created the Jaxrs application?
>> 
>> @Component(service=Application.class)
>> @JaxrsName("MyApplication")
>> @JaxrsApplicationBase("/example")
>> public class MyApp extends Application{
>> 
>> }
>> 
>> Paul Spencer
>> 
>>>> On Jan 23, 2023, at 7:39 AM, Jaap Gordijn  wrote:
>>> 
>>> Paul,
>>> 
>>> I used the features as you suggested.
>>> 
>>> In the log, I see that the Jetty container starts.
>>> Also the context path is registered:
>>> Registering
>>> OsgiServletContext{model=OsgiContextModel{WB,id=OCM-
>> 5,name='context.fo
>>> rMyApplication',path='/example',bundle=org.apache.aries.jax.rs.whitebo
>>> ard,ref=[org.osgi.service.http.context.ServletContextHelper]}} as OSGi
>>> service for "/example" context pat
>>> 
>>> But then I get this:
>>> org.apache.cxf.cxf-rt-transports-http - 3.5.5 | Can't find the request
>>> for http://172.20.116.137:8181/example/person's Observer
>>> 
>>> Best,
>>> 
>>> -- Jaap
>>> 
>>>> -Original Message-
>>>> From: Paul Spencer 
>>>> Sent: maandag 23 januari 2023 13:13
>>>> To: user@karaf.apache.org
>>>> Subject: Re: aries-jax-rs-whiteboard with @JaxrsApplicationSelect and
>>>> @JSONRequired result in 404
>>>> 
>>>> Jaap,
>>>> 1) You can use the web: commands to verify the expected context
>>>> exists
>>>> 2) Review karaf.log  to verify the the bundle startup and post
>>>> relevant errors
>>>> 3) I use the following features:
>>>> jackson
>>>> pax-web-http-whiteboard
>>>> aries-jax-rs-whiteboard
>>>> aries-jax-rs-whiteboard-jackson
>>>> 
>>>> Paul Spencer
>>>> 
>>>>>> On Jan 23, 2023, at 4:49 AM, Jaap Gordijn  wrote:
>>>>> 
>>>>> Hi,
>>>>> 
>>>>> I have a problem with aries-jax-rs-whiteboard and the use of
>>>>> @JaxrsApplicationSelect and @JSONRequired in combination.
>>>>> That results in an inaccessible service (404).
>>>>> If I disable the JSON annotations, the /test service works (via
>>>>> /example/text
>>>>> 
>>>>> Code:
>>>>> 
>>>>> @Component(service = Rest.class, scope = ServiceScope.PROTOTYPE)
>>>>> @JaxrsResource @JaxrsApplicationSelect("(" +
>>>>> JaxrsWhiteboardConstants.JAX_RS_NAME +
>>>>> "=MyApplication)")
>>>>> @JSONRequired
>>>>> @Produces(MediaType.APPLICATION_JSON)
>>>>> public class Rest {
>>>>> 
>>>>>  @Reference(scope=ReferenceScope.PROTOTYPE_REQUIRED)
>>>>>  private volatile PersonService personService;
>>>>> 
>>>>>  @GET
>>>>>  @Path("/person")
>>>>>  public List listPersons() {
>>>>>  return personService.select();
>>>>>  }
>>>>> 
>>>>>  @GET
>>>>>  @Path("/test")
>>>>>  public String test() {
>>>>>  return "test";
>>>>>  }
>>>>> }
>>>>> 
>>>>> @Component(service=Application.class, property =
>>>>> {"servlet.init.hide-service-list-page=true"} )
>>>>> @JaxrsApplicationBase("example")
>>>>> @JaxrsName("MyApplication")
>>>>> public class MyApplication extends Application {
>>>>> 
>>>>> }
>>>>> 
>>>>> 
>>>>> mvn:org.apache.cxf.karaf/apache-cxf/3.5.5/xml/features>>>> re
>>>>> posito
>>>>> ry>
>>>>> 
>>>>> mvn:org.apache.aries.jax.rs/org.apache.aries.jax.rs.feat
>>>>> ur
>>>>> es/2.0
>>>>> .2/xml>>>> 
>>>>> hibernate
>>>>> hibernate-validator
>>>>> ...
>>>>> 
>>>>> I use Karaf 4.4.3
>>>>> 
>>>>> Any ideas?
>>>>> 
>>>>> Best,
>>>>> 
>>>>> -- Jaap
>>>>> 
>>> 
> 


RE: aries-jax-rs-whiteboard with @JaxrsApplicationSelect and @JSONRequired result in 404

2023-01-23 Thread Jaap Gordijn
Paul,

I used the features as you suggested.

In the log, I see that the Jetty container starts.
Also the context path is registered:
Registering 
OsgiServletContext{model=OsgiContextModel{WB,id=OCM-5,name='context.forMyApplication',path='/example',bundle=org.apache.aries.jax.rs.whiteboard,ref=[org.osgi.service.http.context.ServletContextHelper]}}
 as OSGi service for "/example" context pat

But then I get this:
org.apache.cxf.cxf-rt-transports-http - 3.5.5 | Can't find the request for 
http://172.20.116.137:8181/example/person's Observer

Best,

-- Jaap

> -Original Message-
> From: Paul Spencer 
> Sent: maandag 23 januari 2023 13:13
> To: user@karaf.apache.org
> Subject: Re: aries-jax-rs-whiteboard with @JaxrsApplicationSelect and
> @JSONRequired result in 404
> 
>  Jaap,
> 1) You can use the web: commands to verify the expected context exists
> 2) Review karaf.log  to verify the the bundle startup and post relevant errors
> 3) I use the following features:
>   jackson
>  pax-web-http-whiteboard
>  aries-jax-rs-whiteboard
>  aries-jax-rs-whiteboard-jackson
> 
> Paul Spencer
> 
> > On Jan 23, 2023, at 4:49 AM, Jaap Gordijn  wrote:
> >
> > Hi,
> >
> > I have a problem with aries-jax-rs-whiteboard and the use of
> > @JaxrsApplicationSelect and @JSONRequired in combination.
> > That results in an inaccessible service (404).
> > If I disable the JSON annotations, the /test service works (via
> > /example/text
> >
> > Code:
> >
> > @Component(service = Rest.class, scope = ServiceScope.PROTOTYPE)
> > @JaxrsResource @JaxrsApplicationSelect("(" +
> > JaxrsWhiteboardConstants.JAX_RS_NAME +
> > "=MyApplication)")
> > @JSONRequired
> > @Produces(MediaType.APPLICATION_JSON)
> > public class Rest {
> >
> >@Reference(scope=ReferenceScope.PROTOTYPE_REQUIRED)
> >private volatile PersonService personService;
> >
> >@GET
> >@Path("/person")
> >public List listPersons() {
> >return personService.select();
> >}
> >
> >@GET
> >@Path("/test")
> >public String test() {
> >return "test";
> >}
> > }
> >
> > @Component(service=Application.class, property =
> > {"servlet.init.hide-service-list-page=true"} )
> > @JaxrsApplicationBase("example")
> > @JaxrsName("MyApplication")
> > public class MyApplication extends Application {
> >
> > }
> >
> >
> > mvn:org.apache.cxf.karaf/apache-cxf/3.5.5/xml/features > posito
> > ry>
> >
> > mvn:org.apache.aries.jax.rs/org.apache.aries.jax.rs.featur
> > es/2.0
> > .2/xml >   
> >   hibernate
> >   hibernate-validator
> >   ...
> >
> > I use Karaf 4.4.3
> >
> > Any ideas?
> >
> > Best,
> >
> > -- Jaap
> >



Re: aries-jax-rs-whiteboard with @JaxrsApplicationSelect and @JSONRequired result in 404

2023-01-23 Thread Paul Spencer
 Jaap,
1) You can use the web: commands to verify the expected context exists
2) Review karaf.log  to verify the the bundle startup and post relevant errors
3) I use the following features:
  jackson
 pax-web-http-whiteboard
 aries-jax-rs-whiteboard
 aries-jax-rs-whiteboard-jackson

Paul Spencer

> On Jan 23, 2023, at 4:49 AM, Jaap Gordijn  wrote:
> 
> Hi,
> 
> I have a problem with aries-jax-rs-whiteboard and the use of
> @JaxrsApplicationSelect and @JSONRequired in combination.
> That results in an inaccessible service (404).
> If I disable the JSON annotations, the /test service works (via
> /example/text
> 
> Code:
> 
> @Component(service = Rest.class, scope = ServiceScope.PROTOTYPE)
> @JaxrsResource
> @JaxrsApplicationSelect("(" + JaxrsWhiteboardConstants.JAX_RS_NAME +
> "=MyApplication)")
> @JSONRequired
> @Produces(MediaType.APPLICATION_JSON)
> public class Rest {
>
>@Reference(scope=ReferenceScope.PROTOTYPE_REQUIRED)
>private volatile PersonService personService;
> 
>@GET
>@Path("/person")
>public List listPersons() {
>return personService.select(); 
>}
>
>@GET
>@Path("/test")
>public String test() {
>return "test"; 
>}
> }
> 
> @Component(service=Application.class, property =
> {"servlet.init.hide-service-list-page=true"} )
> @JaxrsApplicationBase("example")
> @JaxrsName("MyApplication")
> public class MyApplication extends Application {
> 
> }
> 
> 
> mvn:org.apache.cxf.karaf/apache-cxf/3.5.5/xml/features ry>
> 
> mvn:org.apache.aries.jax.rs/org.apache.aries.jax.rs.features/2.0
> .2/xml   
>   hibernate
>   hibernate-validator
>   ...
> 
> I use Karaf 4.4.3
> 
> Any ideas?
> 
> Best,
> 
> -- Jaap
> 


aries-jax-rs-whiteboard with @JaxrsApplicationSelect and @JSONRequired result in 404

2023-01-23 Thread Jaap Gordijn
Hi,

I have a problem with aries-jax-rs-whiteboard and the use of
@JaxrsApplicationSelect and @JSONRequired in combination.
That results in an inaccessible service (404).
If I disable the JSON annotations, the /test service works (via
/example/text

Code:

@Component(service = Rest.class, scope = ServiceScope.PROTOTYPE)
@JaxrsResource
@JaxrsApplicationSelect("(" + JaxrsWhiteboardConstants.JAX_RS_NAME +
"=MyApplication)")
@JSONRequired
@Produces(MediaType.APPLICATION_JSON)
public class Rest {

@Reference(scope=ReferenceScope.PROTOTYPE_REQUIRED)
private volatile PersonService personService;

@GET
@Path("/person")
public List listPersons() {
return personService.select(); 
}

@GET
@Path("/test")
public String test() {
return "test"; 
}
}

@Component(service=Application.class, property =
{"servlet.init.hide-service-list-page=true"} )
@JaxrsApplicationBase("example")
@JaxrsName("MyApplication")
public class MyApplication extends Application {

}

 
mvn:org.apache.cxf.karaf/apache-cxf/3.5.5/xml/features
 
mvn:org.apache.aries.jax.rs/org.apache.aries.jax.rs.features/2.0
.2/xmlhibernate
   hibernate-validator
   ...

I use Karaf 4.4.3

Any ideas?

Best,

-- Jaap