2012-01-18 11 views
6

मैं jaxws-Maven-प्लगइन के wsimport लक्ष्य का उपयोग कर एक डबल्यूएसडीएल से जावा वर्गों पैदा कर रहा हूँ। बॉक्स के बाहर, यह एक्सएमएल स्कीमा से घृणास्पद वर्ग और विधियों को उत्पन्न करता है; उदाहरण के लिए, MY_OBJECT नामक XML तत्व से MYOBJECT नामक एक वर्ग।कैमलकेस बाइंडिंग को उत्सर्जित करने के लिए मैं JAXB2 कैसे प्राप्त कर सकता हूं?

मुझे पता चला है कि मैं बाहरी फ़ाइल के साथ customize my JAXB2 bindings कर सकता हूं; यह कक्षाओं और विधियों की एक छोटी संख्या के लिए स्वीकार्य होगा, लेकिन इस मामले में मैन्युअल रूप से नामकरण करने का ओवरहेड अवांछनीय है।

कुछ खोज XJC CamelCase Always प्लगइन के संदर्भों को अनवरोधित करती हैं, लेकिन ऐसा लगता है कि यह अनियमित है और अधिकांश लिंक 404 हैं। छोड़ने को तैयार नहीं, मुझे camelcase-always मेवेन आर्टिफैक्ट मिला जो कि इस कार्यक्षमता को प्रदान करता है, लेकिन मुझे यकीन नहीं है कि इसे कैसे कॉन्फ़िगर किया जाए ताकि jaxws-maven-plugin इसका उपयोग कर सके।

मैं कैमेलकेस बाइंडिंग को मैन्युअल रूप से निर्दिष्ट किए बिना कैसे प्राप्त कर सकता हूं?

उत्तर

5

मुझे jaxws-maven-plugin के साथ ऐसा करने का उदाहरण नहीं मिला, लेकिन मुझे maven-jaxb2-plugin का उपयोग करके उदाहरण मिल गए।

<repository> 
    <id>releases</id> 
    <name>Releases</name> 
    <url>https://oss.sonatype.org/content/repositories/releases</url> 
</repository> 

नोट प्लगइन घोषणा और तर्क maven-jaxb2-plugin निष्पादन के लिए कहा:

पहले, आप एक भंडार अपने पोम को जोड़ा जाना चाहिए।

<plugin> 
    <groupId>org.jvnet.jaxb2.maven2</groupId> 
    <artifactId>maven-jaxb2-plugin</artifactId> 
    <version>0.8.0</version> 
    <executions> 
     <execution> 
      <id>jaxb-generate</id> 
      <phase>generate-sources</phase> 
      <goals> 
       <goal>generate</goal> 
      </goals> 
     </execution> 
    </executions> 
    <configuration> 
     <generatePackage>YOUR.PACKAGE.HERE</generatePackage> 
     <args> 
      <arg>-camelcase-always</arg> 
     </args> 
     <bindingDirectory>src/main/binding</bindingDirectory> 
     <schemas> 
      <schema> 
       <url>http://YOUR.WSDL.HERE</url> 
      </schema> 
     </schemas> 
     <extension>true</extension> 
     <plugins> 
      <plugin> 
       <groupId>org.andromda.thirdparty.jaxb2_commons</groupId> 
       <artifactId>camelcase-always</artifactId> 
       <version>1.0</version> 
      </plugin> 
     </plugins> 
    </configuration> 
</plugin> 

अधिक जानकारी के लिए docs देखें।

0

अपाचे सीएक्सएफ और सीएक्सएफ-एक्सजेसी-प्लगइन के उपयोगकर्ताओं के लिए उपयोगी हो सकता है।

<plugin> 
    <groupId>org.apache.cxf</groupId> 
    <artifactId>cxf-xjc-plugin</artifactId> 
    <version>3.1.0</version> 
    <configuration> 
     <extensions> 
     <extension>org.andromda.thirdparty.jaxb2_commons:camelcase-always:1.0</extension> 
     </extensions> 
    </configuration> 
    <executions> 
     <execution> 
     <id>generate-sources</id> 
     <phase>generate-sources</phase> 
     <goals> 
      <goal>xsdtojava</goal> 
     </goals> 
     <configuration> 
      <sourceRoot>${basedir}/target/generated-sources/cxf</sourceRoot> 
      <xsdOptions> 
      <xsdOption> 
       <xsd>YOUR.XSD.HERE</xsd> 
       <packagename>YOUR.PACKAGE.HERE</packagename> 
       <extensionArgs> 
       <extensionArg>-camelcase-always</extensionArg> 
       </extensionArgs> 
       <extension>true</extension> 
      </xsdOption> 
      </xsdOptions> 
     </configuration> 
     </execution> 
    </executions> 
    </plugin> 
संबंधित मुद्दे

 संबंधित मुद्दे