5

Używam wtyczki maven-jaxws do generowania klas java z mojego wsdl, schematu. Nie generuje adnotacji @XmlElementWrapper w wygenerowanych klasach. Z postu this rozumiem, że użyłem wtyczki jaxb-xew, ale nie jestem w stanie uruchomić go z wtyczką maven-jaxws. Każda pomoc będzie doceniona. Oto config Próbowałemjak uzyskać maven-jaxws-plugin do generowania @ XmlElementWrapper na klasach generowanych z xsd?

<plugin> 
    <groupId>org.jvnet.jax-ws-commons</groupId> 
    <artifactId>jaxws-maven-plugin</artifactId> 
    <version>2.2</version> 
    <executions> 
    <execution> 
     <goals> 
       <goal>wsimport</goal> 
      </goals> 
      <phase>generate-resources</phase> 
      <configuration> 
       <xjcArgs> 
        <xjcArg>-no-header</xjcArg> 
        <xjcArg>-Xxew</xjcArg> 
        <xjcArg>-Xxew:instantiate lazy</xjcArg> 
        <xjcArg>-Xxew:delete</xjcArg> 
       </xjcArgs> 
       <extension>true</extension> 

       <wsdlDirectory>${basedir}/src/main/resources</wsdlDirectory> 
       <wsdlFiles> 
        <wsdlFile>attribute-service.wsdl</wsdlFile> 
       </wsdlFiles> 
       <sourceDestDir>${project.build.directory}/generated</sourceDestDir> 
       <verbose>true</verbose> 
       <keep>true</keep> 
       <plugins> 
        <plugin> 
         <groupId>com.github.jaxb-xew-plugin</groupId> 
         <artifactId>jaxb-xew-plugin</artifactId> 
         <version>1.0</version> 
        </plugin> 
       </plugins> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

Jeśli może być zintegrowana tylko z maven-jaxb2-plugin można proszę mi pomóc mój webservices up? Zasadniczo Jak określić wsdl i jak generować klasy Service? (Z dopiskiem @WebService)

Dzięki,

Bhagya

Odpowiedz

3

chociaż ten post jest 10 miesięcy w czasie mojego pisania, odpowiadam go w przypadku gdy ktoś będzie go potrzebować.

z JAXWS-maven-plugin i za pomocą JAXB-xew-plugin można wygenerować @XmlElementWrapper adnotacji na liście/tablica obiektów

zakładając swój WSDL ma schemat jak:

<xs:element name="books" minOccurs="0" > 
    <xs:complexType> 
    <xs:sequence> 
     <xs:element name="book" type="Book" minOccurs="0" maxOccurs="unbounded" /> 
    </xs:sequence> 
    </xs:complexType> 
</xs:element> 

generuje Java jako:

@XmlElementWrapper(name = "books") 
@XmlElement(name = "book") 
protected List<Book> books; 

i oto build/plugin

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>jaxws-maven-plugin</artifactId> 
    <version>1.12</version> 
    <configuration> 
     <wsdlDirectory>${project.basedir}/src/main/webapp/WEB-INF/wsdl/</wsdlDirectory> 
     <xjcArgs> 
      <xjcArg>-no-header</xjcArg> 
      <xjcArg>-Xxew</xjcArg> 
      <xjcArg>-Xxew:instantiate lazy</xjcArg> 
      <xjcArg>-Xxew:delete</xjcArg> 
     </xjcArgs> 
    </configuration> 
    <executions> 
     <execution> 
      <id>wsdl_import</id> 
      <goals> 
       <goal>wsimport</goal> 
      </goals> 
     </execution> 
    </executions> 

    <dependencies> 
     <dependency> 
      <groupId>com.github.jaxb-xew-plugin</groupId> 
      <artifactId>jaxb-xew-plugin</artifactId> 
      <version>1.1</version> 
     </dependency> 

     <dependency> 
      <groupId>com.sun.xml.bind</groupId> 
      <artifactId>jaxb-xjc</artifactId> 
      <version>2.2.4-1</version> 
     </dependency>     
    </dependencies> 
</plugin> 
+0

Dziękuję, dokładnie to, czego szukałem. Musiałem umieścić element xjcArgs w pierwszym bloku konfiguracyjnym lub argumenty nie zostały przekazane (maven 3.1.0). Poprawiono odpowiedź odpowiednio. – Dormouse

Powiązane problemy