THALES GROUP LIMITED DISTRIBUTION to email recipients

Hello everyone,

Context: TomEE 9.1.2 micro-profile flavor.

I have raised an issue in another POST (Some issues with simple rest 
application).

This time:

  *   I add a new class which extends Application.
@ApplicationPath("myapp")

public class MyApp extends Application {
}

  *   The previous Root resource is still there
@Path("myresource")
public class MyResource {

    @GET
    public Response test() {

          return Response.ok().build();

    }

}

  *   I remove web.xml from the war or the web.xml is empty (eg no servlet 
declared)

By doing so, I think I am still compliant to the spec:

  *   “If an Application subclass is present…”: this the case
  *   “If no servlet handles this application”: web.xml removed: this is the 
case
  *   “When an Application subclass is present in the archive, if both 
Application.getClasses
and Application.getSingletons return an empty collection (default 
implementation so this is the case) then
all root resource classes and providers packaged in the web application MUST be 
included
and the JAX-RS implementation is REQUIRED to discover them automatically by 
scanning a .war as described above”

But when I startup TomEE micro-profile, I got:
02-Apr-2024 12:04:57.650 INFO [main] 
org.apache.openejb.server.cxf.rs.CxfRsHttpListener.logEndpoints REST 
Application: http://localhost:8080/JAXRS/               -> 
org.apache.openejb.server.rest.InternalApplication@19f9287a<mailto:org.apache.openejb.server.rest.InternalApplication@19f9287a>
02-Apr-2024 12:04:57.654 INFO [main] 
org.apache.openejb.server.cxf.rs.CxfRsHttpListener.logEndpoints      Service 
URI: http://localhost:8080/JAXRS/health         -> Pojo 
org.apache.tomee.microprofile.health.MicroProfileHealthChecksEndpoint
02-Apr-2024 12:04:57.654 INFO [main] 
org.apache.openejb.server.cxf.rs.CxfRsHttpListener.logEndpoints               
GET http://localhost:8080/JAXRS/health         ->      Response getChecks()
02-Apr-2024 12:04:57.654 INFO [main] 
org.apache.openejb.server.cxf.rs.CxfRsHttpListener.logEndpoints               
GET http://localhost:8080/JAXRS/health/live    ->      Response getLiveChecks()
02-Apr-2024 12:04:57.654 INFO [main] 
org.apache.openejb.server.cxf.rs.CxfRsHttpListener.logEndpoints               
GET http://localhost:8080/JAXRS/health/ready   ->      Response getReadyChecks()
02-Apr-2024 12:04:57.654 INFO [main] 
org.apache.openejb.server.cxf.rs.CxfRsHttpListener.logEndpoints               
GET http://localhost:8080/JAXRS/health/started ->      Response 
getStartedChecks()

No GET on a path with myresource or myapp ☹
What’s wrong in my understanding  of the spec ?

For curiosity, I deployed the very same war on TomEE 8.0.16 micro-profile.
This time I got:
02-Apr-2024 12:44:37.179 INFO [main] 
org.apache.openejb.server.cxf.rs.CxfRsHttpListener.logEndpoints REST 
Application: http://localhost:8080/JAXRS/myapp                             -> 
jaxrs.skeleton.MyApp@7c39193f<mailto:jaxrs.skeleton.MyApp@7c39193f>
02-Apr-2024 12:44:37.181 INFO [main] 
org.apache.openejb.server.cxf.rs.CxfRsHttpListener.logEndpoints      Service 
URI: http://localhost:8080/JAXRS/myapp/health                      -> Pojo 
org.apache.geronimo.microprofile.impl.health.cdi.CdiHealthChecksEndpoint
02-Apr-2024 12:44:37.182 INFO [main] 
org.apache.openejb.server.cxf.rs.CxfRsHttpListener.logEndpoints               
GET http://localhost:8080/JAXRS/myapp/health                      ->      
Response getChecks()
02-Apr-2024 12:44:37.185 INFO [main] 
org.apache.openejb.server.cxf.rs.CxfRsHttpListener.logEndpoints      Service 
URI: http://localhost:8080/JAXRS/myapp/metrics                     -> Pojo 
org.apache.geronimo.microprofile.metrics.jaxrs.CdiMetricsEndpoints
02-Apr-2024 12:44:37.185 INFO [main] 
org.apache.openejb.server.cxf.rs.CxfRsHttpListener.logEndpoints               
GET http://localhost:8080/JAXRS/myapp/metrics                     ->      
Object getJson(SecurityContext, UriInfo)
02-Apr-2024 12:44:37.185 INFO [main] 
org.apache.openejb.server.cxf.rs.CxfRsHttpListener.logEndpoints               
GET http://localhost:8080/JAXRS/myapp/metrics                     ->      
String getText(SecurityContext, UriInfo)
02-Apr-2024 12:44:37.185 INFO [main] 
org.apache.openejb.server.cxf.rs.CxfRsHttpListener.logEndpoints               
GET 
http://localhost:8080/JAXRS/myapp/metrics/{registry}<http://localhost:8080/JAXRS/myapp/metrics/%7bregistry%7d>
          ->      Object getJson(String, SecurityContext, UriInfo)
02-Apr-2024 12:44:37.186 INFO [main] 
org.apache.openejb.server.cxf.rs.CxfRsHttpListener.logEndpoints               
GET 
http://localhost:8080/JAXRS/myapp/metrics/{registry}<http://localhost:8080/JAXRS/myapp/metrics/%7bregistry%7d>
          ->      String getText(String, SecurityContext, UriInfo)
02-Apr-2024 12:44:37.186 INFO [main] 
org.apache.openejb.server.cxf.rs.CxfRsHttpListener.logEndpoints               
GET 
http://localhost:8080/JAXRS/myapp/metrics/{registry}/{metric}<http://localhost:8080/JAXRS/myapp/metrics/%7bregistry%7d/%7bmetric%7d>
 ->      Object getJson(String, String, SecurityContext, UriInfo)
02-Apr-2024 12:44:37.186 INFO [main] 
org.apache.openejb.server.cxf.rs.CxfRsHttpListener.logEndpoints               
GET 
http://localhost:8080/JAXRS/myapp/metrics/{registry}/{metric}<http://localhost:8080/JAXRS/myapp/metrics/%7bregistry%7d/%7bmetric%7d>
 ->      String getText(String, String, SecurityContext, UriInfo)
02-Apr-2024 12:44:37.186 INFO [main] 
org.apache.openejb.server.cxf.rs.CxfRsHttpListener.logEndpoints           
OPTIONS 
http://localhost:8080/JAXRS/myapp/metrics/{registry}<http://localhost:8080/JAXRS/myapp/metrics/%7bregistry%7d>
          ->      Object getMetadata(String, SecurityContext, UriInfo)
02-Apr-2024 12:44:37.186 INFO [main] 
org.apache.openejb.server.cxf.rs.CxfRsHttpListener.logEndpoints           
OPTIONS 
http://localhost:8080/JAXRS/myapp/metrics/{registry}/{metric}<http://localhost:8080/JAXRS/myapp/metrics/%7bregistry%7d/%7bmetric%7d>
 ->      Object getMetadata(String, String, SecurityContext, UriInfo)
02-Apr-2024 12:44:37.186 INFO [main] 
org.apache.openejb.server.cxf.rs.CxfRsHttpListener.logEndpoints      Service 
URI: http://localhost:8080/JAXRS/myapp/myresource                  -> Pojo 
jaxrs.skeleton.MyResource
02-Apr-2024 12:44:37.186 INFO [main] 
org.apache.openejb.server.cxf.rs.CxfRsHttpListener.logEndpoints               
GET http://localhost:8080/JAXRS/myapp/myresource                  ->      
Response test()
02-Apr-2024 12:44:37.186 INFO [main] 
org.apache.openejb.server.cxf.rs.CxfRsHttpListener.logEndpoints      Service 
URI: http://localhost:8080/JAXRS/myapp/openapi                     -> Pojo 
org.apache.geronimo.microprofile.openapi.jaxrs.OpenAPIEndpoint
02-Apr-2024 12:44:37.186 INFO [main] 
org.apache.openejb.server.cxf.rs.CxfRsHttpListener.logEndpoints               
GET http://localhost:8080/JAXRS/myapp/openapi                     ->      
OpenAPI get()

which is fine.

Big issue on TomEE 9.1.2 micro-profile ?

Best Regards.



Reply via email to