Hello, I'm taking a stab at migrating my project to TomEE 9.0.0.RC. Tomcat
starts fine and logs are happy, but I'm receiving a 500 erorr with this
message when going to the /openapi URL. This is almost certainly a
configuration mistake on my part, but I was wondering if anyone could shed
some light on this. My setup worked properly under TomEE 8.

java.lang.NullPointerException: Cannot invoke
"org.eclipse.microprofile.openapi.models.OpenAPI.getOpenapi()" because
"model" is null
        
io.smallrye.openapi.runtime.io.definition.DefinitionWriter.writeOpenAPI(DefinitionWriter.java:37)
        
io.smallrye.openapi.runtime.io.OpenApiSerializer.serialize(OpenApiSerializer.java:37)
        
org.apache.tomee.microprofile.openapi.MicroProfileOpenApiEndpoint.doGet(MicroProfileOpenApiEndpoint.java:50)
        jakarta.servlet.http.HttpServlet.service(HttpServlet.java:500)
        jakarta.servlet.http.HttpServlet.service(HttpServlet.java:587)
        
org.apache.tomee.webservices.CXFJAXRSFilter.doFilter(CXFJAXRSFilter.java:88)
        
io.smallrye.opentracing.contrib.jaxrs2.server.SpanFinishingFilter.doFilter(SpanFinishingFilter.java:69)
        org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
        org.apache.openejb.server.httpd.EEFilter.doFilter(EEFilter.java:67)
        
io.smallrye.metrics.jaxrs.JaxRsMetricsServletFilter.doFilter(JaxRsMetricsServletFilter.java:53)


These are all the "provided" libraries in my pom. Am I including
microprofile.openapi correctly?

  <dependencies>
    <dependency>
      <groupId>jakarta.platform</groupId>
      <artifactId>jakarta.jakartaee-api</artifactId>
      <version>9.1.0</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>jakarta.platform</groupId>
      <artifactId>jakarta.jakartaee-web-api</artifactId>
      <version>9.1.0</version>
      cope>provided</scope>
    </dependency>
    <dependency>
      <groupId>jakarta.json.bind</groupId>
      <artifactId>jakarta.json.bind-api</artifactId>
      <version>3.0.0</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.microprofile.openapi</groupId>
      <artifactId>microprofile-openapi-api</artifactId>
      <version>3.0</version>
      <scope>provided</scope>
    </dependency>

This is the part in MicroProfileOpenApiRegistration that is failing. It
can't find the "model" from the serlvet context under a key called
"org.apache.tomee.microprofile.openapi.MicroProfileOpenApiRegistration.OpenAPI"

    public static OpenAPI getOpenApi(ServletContext servletContext) {
        Objects.requireNonNull(servletContext);
        return
(OpenAPI)servletContext.getAttribute(MicroProfileOpenApiRegistration.class.getName()
+ ".OpenAPI");
    }

Has the move to Smallrye impacted how I should include microprofile in my
project?

Thanks
-Kean

Reply via email to