2016-05-03 32 views
9

के साथ जैवैक्स सत्यापन मैं अपने आराम एपीआई को दस्तावेज करने के लिए स्वैगर का उपयोग करने की कोशिश कर रहा हूं, और मुझे कुछ सफलता मिली है, लेकिन जब मैं सीमित संसाधन पैरामीटर की बात करता हूं तो मैं दीवार पर टक्कर मार रहा हूं। मैं जेबॉस रीस्टेसी का उपयोग हाइबरनेट सत्यापनकर्ता प्रदाता और जैक्सन 2.x एनोटेटेड पीओजेओ के साथ कर रहा हूं। समस्या मैं मार रहा हूँ जब @ DecimalMin/@ DecimalMax एनोटेशन सामना होता है मैं एकस्वैगर और जेबॉस

java.lang.NoSuchMethodError: javax.validation.constraints.DecimalMin.inclusive()Z 

ऐसा लगता है कि अकड़ javax.validation.constraints के एक नए संस्करण का उपयोग करने की कोशिश कर रहा है हो जाता है। * (v1.1.0 फाइनल) लाइब्रेरी और जेबॉस एक पुराने संस्करण (v1.0.0.GA) का उपयोग कर रहा है। मैंने सब कुछ करने की कोशिश की है जिसे मैं उचित लाइब्रेरी को शामिल करने के बारे में सोच सकता हूं।

<dependency> 
    <groupId>io.swagger</groupId> 
    <artifactId>swagger-jaxrs</artifactId> 
    <version>1.5.8</version> 
</dependency> 

उदाहरण POJO स्निपेट::

... 
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; 
... 

मैंने बहुत कोशिश की है

पर्यावरण JBoss ईएपी 6.4.0.GA

मेरे अकड़ प्रविष्टि (pom.xml) है चीजों के बारे में, लेकिन जितना मैंने सीखा, मुझे विश्वास है कि नीचे मेरी निर्भरताओं को सीधा करने के लिए मेरे दो सबसे प्रासंगिक प्रयास हैं:

प्रयास 1: हाइबरनेट सत्यापनकर्ता से javax.validation को शामिल न करें & देना अकड़ यह शामिल हैं:

<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> 

प्रयास 2: शामिल करें javax.validation v1.1.0.Final स्पष्ट:

<dependency> 
    <groupId>javax.validation</groupId> 
    <artifactId>validation-api</artifactId> 
    <version>1.1.0.Final</version> 
</dependency> 

Maven निर्भरता ट्री (प्रयास 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 

तो मेरे सवाल है: मैं कैसे स्वैगर JBoss RESTEasy & हाइबरनेट सत्यापनकर्ता के साथ प्रयोग करते हैं?

पीएस मैं swagger/jboss/javaee के लिए नया हूँ इसलिए कृपया किसी भी मूर्ख प्रश्नों को क्षमा करें और अधिक जानकारी के लिए पूछने में संकोच नहीं करें। बिल्कुल यकीन नहीं है कि मुझे यहां क्या प्रदान करना चाहिए।

+0

पर्यावरण किस तरह की:

$JBOSS_HOME/modules/system/layers/base/javax/validation/api/main 

तो सही सत्यापन पुस्तकालय के लिए JBoss बात क्या यह? एक जावा ईई कंटेनर जैसे कि जेबॉस ईएपी या वाइल्डफली? या जावा एसई शैली, टोमकैट आदि? और क्या आप निर्भरता ग्राफ पोस्ट कर सकते हैं (एमवीएन निर्भरता: पेड़)? – Gunnar

+0

प्रश्न में जोड़ा गया। पर्यावरण जेबॉस ईएपी 6.4.0.जीए है। ऊपर प्रयास # 1 के लिए निर्भरता पेड़। – Jeremy

+0

मैं जो कोशिश कर सकता हूं उससे # 1 जो मैं उम्मीद करता हूं वह कर रहा हूं और स्वैगर में उचित संस्करण के साथ javax.validation पुस्तकालय शामिल हैं। तो मैं डंबफॉल्ड हूं कि मुझे NoSuchMethodError क्यों मिल रहा है ... – Jeremy

उत्तर

0

यह पता चला कि जेबॉस ईएपी सत्यापन पुस्तकालय (एक पुराना संस्करण) का अपना संस्करण प्रदान कर रहा था।

मैं सही सत्यापन .jar फ़ाइल में सक्षम प्रति था और कम से module.xml फ़ाइल को संपादित:

... 

<module xmlns="urn:jboss:module:1.1" name="javax.validation.api"> 
    <resources> 
     <!-- OLD ONE: <resource-root path="validation-api-1.0.0.GA-redhat-3.jar"/> --> 
     <!-- NEW ONE BELOW: --> 
     <resource-root path="validation-api-1.1.0.Final.jar"/> 
     <!-- Insert resources here --> 
    </resources> 
    <dependencies> 
     <module name="org.jboss.logging"/> 
    </dependencies> 
</module>