Ich versuche, Swagger zu verwenden, um meine Pause api zu dokumentieren, und ich hatte einige Erfolge, aber ich stoße auf eine Wand, wenn es um beschränkte Ressourcenparameter geht. Ich benutze JBoss RESTEasy mit Hibernate Validator Provider und Jackson 2.x kommentierte POJOs. Das Problem, das ich bin schlagen ist, wenn @ DecimalMin/@ DecimalMax Anmerkungen angetroffen ich einjavax validation mit swagger & jboss
java.lang.NoSuchMethodError: javax.validation.constraints.DecimalMin.inclusive()Z
Es scheint, dass Swagger versucht, eine neuere Version der javax.validation.constraints zu verwenden. * (V1.1.0 .Final) library und jboss verwendet eine ältere Version (v1.0.0.GA). Ich habe alles versucht, um die richtige Bibliothek zu verwenden, ohne Erfolg.
Umwelt ist JBoss EAP 6.4.0.GA
Mein Prahlerei Eintrag (pom.xml):
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-jaxrs</artifactId>
<version>1.5.8</version>
</dependency>
Beispiel POJO Snippet:
...
import javax.validation.constraints.DecimalMax;
import javax.validation.constraints.DecimalMin;
...
@JsonInclude(JsonInclude.Include.NON_NULL)
@Generated("org.jsonschema2pojo")
@JsonPropertyOrder({
"altM",
"altDatum"
})
public class Altitude {
@JsonProperty("altM")
@DecimalMin("-2000")
@DecimalMax("10000")
@NotNull
private Double altM;
...
ich viel ausprobiert habe von den Dingen, aber je mehr ich lernte, glaube ich, dass die folgenden meine zwei relevantesten Versuche sind, meine Abhängigkeiten in Ordnung zu bringen:
Versuch 1: Ausschließen javax.validation von Hibernate Validator & let Prahlerei sind es:
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-hibernatevalidator-provider</artifactId>
<version>3.0.16.Final</version>
<exclusions>
<exclusion>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
</exclusion>
</exclusions>
</dependency>
Versuch 2: Fügen Sie javax.validation v1.1.0.Final ausdrücklich:
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.1.0.Final</version>
</dependency>
Maven Abhängigkeitsbaum (Versuch 1):
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ MissionPlanningService ---
[INFO] mil.army.cerdec.cpi.mcas:MissionPlanningService:war:0.0.2-SNAPSHOT
[INFO] +- org.jboss.resteasy:resteasy-jaxrs:jar:3.0.16.Final:compile
[INFO] | +- org.jboss.spec.javax.ws.rs:jboss-jaxrs-api_2.0_spec:jar:1.0.0.Final:compile
[INFO] | +- org.jboss.spec.javax.annotation:jboss-annotations-api_1.2_spec:jar:1.0.0.Final:compile
[INFO] | +- javax.activation:activation:jar:1.1.1:compile
[INFO] | +- org.apache.httpcomponents:httpclient:jar:4.3.6:compile
[INFO] | | +- org.apache.httpcomponents:httpcore:jar:4.3.3:compile
[INFO] | | +- commons-logging:commons-logging:jar:1.1.3:compile
[INFO] | | \- commons-codec:commons-codec:jar:1.6:compile
[INFO] | +- commons-io:commons-io:jar:2.1:compile
[INFO] | +- net.jcip:jcip-annotations:jar:1.0:compile
[INFO] | \- org.jboss.logging:jboss-logging:jar:3.1.4.GA:compile
[INFO] +- org.jboss.resteasy:resteasy-hibernatevalidator-provider:jar:3.0.16.Final:compile
[INFO] | +- org.hibernate:hibernate-validator:jar:4.3.1.Final:compile
[INFO] | \- org.jboss.weld.se:weld-se:jar:2.1.0.Final:compile
[INFO] +- commons-lang:commons-lang:jar:2.6:compile
[INFO] +- org.jboss.resteasy:resteasy-jackson2-provider:jar:3.0.16.Final:compile
[INFO] | +- com.fasterxml.jackson.core:jackson-core:jar:2.6.3:compile
[INFO] | +- com.fasterxml.jackson.core:jackson-databind:jar:2.6.3:compile
[INFO] | +- com.fasterxml.jackson.core:jackson-annotations:jar:2.6.3:compile
[INFO] | \- com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:jar:2.6.3:compile
[INFO] | +- com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:jar:2.6.3:compile
[INFO] | \- com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:2.6.3:compile
[INFO] \- io.swagger:swagger-jaxrs:jar:1.5.8:compile
[INFO] +- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:jar:2.4.5:compile
[INFO] | \- org.yaml:snakeyaml:jar:1.12:compile
[INFO] +- com.fasterxml.jackson.dataformat:jackson-dataformat-xml:jar:2.4.5:compile
[INFO] | \- org.codehaus.woodstox:stax2-api:jar:3.1.4:compile
[INFO] +- io.swagger:swagger-core:jar:1.5.8:compile
[INFO] | +- org.apache.commons:commons-lang3:jar:3.2.1:compile
[INFO] | +- org.slf4j:slf4j-api:jar:1.6.3:compile
[INFO] | +- com.fasterxml.jackson.datatype:jackson-datatype-joda:jar:2.4.5:compile
[INFO] | | \- joda-time:joda-time:jar:2.2:compile
[INFO] | +- io.swagger:swagger-models:jar:1.5.8:compile
[INFO] | | \- io.swagger:swagger-annotations:jar:1.5.8:compile
[INFO] | \- javax.validation:validation-api:jar:1.1.0.Final:compile
[INFO] +- javax.ws.rs:jsr311-api:jar:1.1.1:compile
[INFO] +- org.reflections:reflections:jar:0.9.10:compile
[INFO] | +- org.javassist:javassist:jar:3.19.0-GA:compile
[INFO] | \- com.google.code.findbugs:annotations:jar:2.0.1:compile
[INFO] \- com.google.guava:guava:jar:18.0:compile
Also meine Frage ist: Wie kann ich Swagger mit JBoss Hibernate Validator Resteasy &?
P.S. Ich bin neu bei swagger/jboss/javaee, also bitte verzeih alle dummen Fragen und zögere nicht, nach mehr Informationen zu fragen. Ich bin mir nicht sicher, was ich hier alles geben sollte.
Welche Art von Umgebung ist das? Ein Java EE Container wie JBoss EAP oder WildFly? Oder Java SE Stil, Tomcat etc.? Und können Sie das Abhängigkeitsdiagramm (mvn dependency: tree) posten? – Gunnar
Der Frage hinzugefügt. Umgebung ist JBoss EAP 6.4.0.GA. Abhängigkeitsbaum für Versuch Nr. 1 oben. – Jeremy
Von dem, was ich sagen kann Versuch # 1 tut, was ich erwarte, und swagger schließt die javax.validation Bibliotheken mit der korrekten Version ein. Also bin ich sprachlos, warum ich den NoSuchMethodError bekomme ... – Jeremy