openapi-tools / swagger-maven-plugin

Maven plugin to activate the Swagger Core library to generate OpenAPI documentation.
MIT License
70 stars 45 forks source link

Missing class javax.servlet.ServletConfig #48

Open ahoehma opened 4 years ago

ahoehma commented 4 years ago

<plugin>
        <groupId>io.openapitools.swagger</groupId>
        <artifactId>swagger-maven-plugin</artifactId>
        <version>2.1.2</version>
        <configuration>
          <outputPath>${basedir}/src/openapi/</outputPath>
          <outputFileName>cc-${api.version}</outputFileName>
          <outputFormat>JSONANDYAML</outputFormat>
          <prettyPrint>TRUE</prettyPrint>
          <attachSwaggerArtifact>true</attachSwaggerArtifact>
          <resourceClasses>
            <resourceClasse>com.siemens.spice.cc.rest.service.ConfigurationController</resourceClasse>
            <resourceClasse>com.siemens.spice.cc.rest.service.HistoryController</resourceClasse>
            <resourceClasse>com.siemens.spice.cc.rest.service.SettingsController</resourceClasse>
            <resourceClasse>com.siemens.spice.cc.rest.service.ProductsController</resourceClasse>
          </resourceClasses>
        </configuration>
        <executions>
          <execution>
            <phase>process-classes</phase>
            <goals>
              <goal>generate</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
``´

[ERROR] Failed to execute goal io.openapitools.swagger:swagger-maven-plugin:2.1.2:generate (default) on project rest-service: Execution default of goal io.openapitools.swagger:swagger-maven-plugin:2.1.2:generate failed: A required class was missing while executing io.openapitools.swagger:swagger-maven-plugin:2.1.2:generate: Ljavax/servlet/ServletConfig;
[ERROR] -----------------------------------------------------
[ERROR] realm =    plugin>io.openapitools.swagger:swagger-maven-plugin:2.1.2
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/D:/Dev/ApacheMaven/repository/io/openapitools/swagger/swagger-maven-plugin/2.1.2/swagger-maven-plugin-2.1.2.jar
[ERROR] urls[1] = file:/D:/Dev/ApacheMaven/repository/io/swagger/core/v3/swagger-jaxrs2/2.1.0/swagger-jaxrs2-2.1.0.jar
[ERROR] urls[2] = file:/D:/Dev/ApacheMaven/repository/io/github/classgraph/classgraph/4.6.32/classgraph-4.6.32.jar
[ERROR] urls[3] = file:/D:/Dev/ApacheMaven/repository/org/javassist/javassist/3.22.0-GA/javassist-3.22.0-GA.jar
[ERROR] urls[4] = file:/D:/Dev/ApacheMaven/repository/io/swagger/core/v3/swagger-models/2.1.0/swagger-models-2.1.0.jar
[ERROR] urls[5] = file:/D:/Dev/ApacheMaven/repository/io/swagger/core/v3/swagger-annotations/2.1.0/swagger-annotations-2.1.0.jar
[ERROR] urls[6] = file:/D:/Dev/ApacheMaven/repository/io/swagger/core/v3/swagger-integration/2.1.0/swagger-integration-2.1.0.jar
[ERROR] urls[7] = file:/D:/Dev/ApacheMaven/repository/io/swagger/core/v3/swagger-core/2.1.0/swagger-core-2.1.0.jar
[ERROR] urls[8] = file:/D:/Dev/ApacheMaven/repository/com/fasterxml/jackson/dataformat/jackson-dataformat-yaml/2.10.1/jackson-dataformat-yaml-2.10.1.jar
[ERROR] urls[9] = file:/D:/Dev/ApacheMaven/repository/org/yaml/snakeyaml/1.24/snakeyaml-1.24.jar
[ERROR] urls[10] = file:/D:/Dev/ApacheMaven/repository/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.10.1/jackson-datatype-jsr310-2.10.1.jar
[ERROR] urls[11] = file:/D:/Dev/ApacheMaven/repository/javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final.jar
[ERROR] urls[12] = file:/D:/Dev/ApacheMaven/repository/com/fasterxml/jackson/jaxrs/jackson-jaxrs-json-provider/2.10.1/jackson-jaxrs-json-provider-2.10.1.jar
[ERROR] urls[13] = file:/D:/Dev/ApacheMaven/repository/com/fasterxml/jackson/jaxrs/jackson-jaxrs-base/2.10.1/jackson-jaxrs-base-2.10.1.jar
[ERROR] urls[14] = file:/D:/Dev/ApacheMaven/repository/com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.10.1/jackson-module-jaxb-annotations-2.10.1.jar
[ERROR] urls[15] = file:/D:/Dev/ApacheMaven/repository/jakarta/xml/bind/jakarta.xml.bind-api/2.3.2/jakarta.xml.bind-api-2.3.2.jar
[ERROR] urls[16] = file:/D:/Dev/ApacheMaven/repository/jakarta/activation/jakarta.activation-api/1.2.1/jakarta.activation-api-1.2.1.jar
[ERROR] urls[17] = file:/D:/Dev/ApacheMaven/repository/javax/ws/rs/javax.ws.rs-api/2.1/javax.ws.rs-api-2.1.jar
[ERROR] urls[18] = file:/D:/Dev/ApacheMaven/repository/org/apache/maven/plugin-tools/maven-plugin-annotations/3.5/maven-plugin-annotations-3.5.jar
[ERROR] urls[19] = file:/D:/Dev/ApacheMaven/repository/javax/enterprise/cdi-api/1.0/cdi-api-1.0.jar
[ERROR] urls[20] = file:/D:/Dev/ApacheMaven/repository/org/codehaus/plexus/plexus-utils/3.1.0/plexus-utils-3.1.0.jar
[ERROR] urls[21] = file:/D:/Dev/ApacheMaven/repository/org/codehaus/plexus/plexus-interpolation/1.25/plexus-interpolation-1.25.jar
[ERROR] urls[22] = file:/D:/Dev/ApacheMaven/repository/org/sonatype/plexus/plexus-sec-dispatcher/1.4/plexus-sec-dispatcher-1.4.jar
[ERROR] urls[23] = file:/D:/Dev/ApacheMaven/repository/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar
[ERROR] urls[24] = file:/D:/Dev/ApacheMaven/repository/org/apache/maven/maven-builder-support/3.6.0/maven-builder-support-3.6.0.jar
[ERROR] urls[25] = file:/D:/Dev/ApacheMaven/repository/org/apache/maven/resolver/maven-resolver-util/1.3.1/maven-resolver-util-1.3.1.jar
[ERROR] urls[26] = file:/D:/Dev/ApacheMaven/repository/org/apache/maven/shared/maven-shared-utils/3.2.1/maven-shared-utils-3.2.1.jar
[ERROR] urls[27] = file:/D:/Dev/ApacheMaven/repository/commons-io/commons-io/2.5/commons-io-2.5.jar
[ERROR] urls[28] = file:/D:/Dev/ApacheMaven/repository/org/eclipse/sisu/org.eclipse.sisu.inject/0.3.3/org.eclipse.sisu.inject-0.3.3.jar
[ERROR] urls[29] = file:/D:/Dev/ApacheMaven/repository/com/google/inject/guice/4.2.1/guice-4.2.1-no_aop.jar
[ERROR] urls[30] = file:/D:/Dev/ApacheMaven/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar
[ERROR] urls[31] = file:/D:/Dev/ApacheMaven/repository/org/codehaus/plexus/plexus-component-annotations/1.7.1/plexus-component-annotations-1.7.1.jar
[ERROR] urls[32] = file:/D:/Dev/ApacheMaven/repository/org/apache/commons/commons-lang3/3.8.1/commons-lang3-3.8.1.jar
[ERROR] urls[33] = file:/D:/Dev/ApacheMaven/repository/org/reflections/reflections/0.9.11/reflections-0.9.11.jar
[ERROR] urls[34] = file:/D:/Dev/ApacheMaven/repository/javax/xml/bind/jaxb-api/2.3.0/jaxb-api-2.3.0.jar
[ERROR] urls[35] = file:/D:/Dev/ApacheMaven/repository/com/fasterxml/jackson/core/jackson-databind/2.10.1/jackson-databind-2.10.1.jar
[ERROR] urls[36] = file:/D:/Dev/ApacheMaven/repository/com/fasterxml/jackson/core/jackson-annotations/2.10.1/jackson-annotations-2.10.1.jar
[ERROR] urls[37] = file:/D:/Dev/ApacheMaven/repository/com/fasterxml/jackson/core/jackson-core/2.10.1/jackson-core-2.10.1.jar
[ERROR] urls[38] = file:/D:/Dev/ApacheMaven/repository/com/google/guava/guava/28.1-jre/guava-28.1-jre.jar
[ERROR] urls[39] = file:/D:/Dev/ApacheMaven/repository/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar
[ERROR] urls[40] = file:/D:/Dev/ApacheMaven/repository/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
[ERROR] urls[41] = file:/D:/Dev/ApacheMaven/repository/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar
[ERROR] urls[42] = file:/D:/Dev/ApacheMaven/repository/org/checkerframework/checker-qual/2.8.1/checker-qual-2.8.1.jar
[ERROR] urls[43] = file:/D:/Dev/ApacheMaven/repository/com/google/errorprone/error_prone_annotations/2.3.2/error_prone_annotations-2.3.2.jar
[ERROR] urls[44] = file:/D:/Dev/ApacheMaven/repository/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar
[ERROR] urls[45] = file:/D:/Dev/ApacheMaven/repository/org/codehaus/mojo/animal-sniffer-annotations/1.18/animal-sniffer-annotations-1.18.jar
[ERROR] Number of foreign imports: 1
[ERROR] import: Entry[import  from realm ClassRealm[maven.api, parent: null]]
[ERROR]
[ERROR] -----------------------------------------------------
[ERROR] : javax.servlet.ServletConfig
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginContainerException

$ mvn -version
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: D:\Dev\ApacheMaven\current-maven
Java version: 1.8.0_252, vendor: Azul Systems, Inc., runtime: D:\Dev\Java\jdk8x64\jre
Default locale: de_DE, platform encoding: Cp1252
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
ahoehma commented 4 years ago

I can "fix" the problem with this extra plugin dependencies ... but I'm not sure if this is the right way.


<dependencies>
          <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
            <scope>runtime</scope>
          </dependency>
        </dependencies>
``´
langecode commented 4 years ago

Thx for reporting. I'll take a look at this - I thought we actually did include the transitive dependencies. It should not harm anything adding the servlet spec classes as you have done.

a-nickol commented 2 years ago

I had to do the same, using Version 2.1.6.