2013-08-21 2 views
1

J'essaie de convertir XMLGregorianCalendar en java.util.Date en utilisant un fichier de liaison externe, mais il ne convertit pas, il reste XMLGregorianCalendar au lieu de java.util.Date, quelqu'un peut-il repérer ce que Je fais mal? Je soupçonne que quelque chose ne va pas dans mon fichier de liaison puisqu'il est récupéré lors de la génération des pojos.Les conversions de type de fichier de liaison dans jaxws étant ignorées

Reliure fichier:

<?xml version="1.0" encoding="UTF-8" ?> 
<jaxws:bindings version="2.0" 
    xmlns:jaxws="http://java.sun.com/xml/ns/jaxws" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 

    <jaxws:globalBindings> 

     <jaxws:javaType name="java.util.Date" xmlType="xsd:dateTime" 
      parseMethod="javax.xml.bind.DatatypeConverter.parseDateTime" 
      printMethod="javax.xml.bind.DatatypeConverter.printDateTime"/> 

     <jaxws:javaType name="java.util.Date" xmlType="xsd:time" 
      parseMethod="javax.xml.bind.DatatypeConverter.parseTime" 
      printMethod="javax.xml.bind.DatatypeConverter.printTime"/> 

     <jaxws:javaType name="java.util.Date" xmlType="xsd:date" 
      parseMethod="javax.xml.bind.DatatypeConverter.parseDate" 
      printMethod="javax.xml.bind.DatatypeConverter.printDate"/> 

    </jaxws:globalBindings> 

</jaxws:bindings> 
profil

à pom.xml:

<profiles> 
    <profile> 
     <id>website</id> 
     <activation> 
     <activeByDefault>true</activeByDefault> 
     </activation> 
     <build> 
     <pluginManagement> 
      <plugins> 
      <plugin> 
       <groupId>org.jvnet.jax-ws-commons</groupId> 
       <artifactId>jaxws-maven-plugin</artifactId> 
       <version>2.2</version> 
      </plugin> 
      </plugins> 
     </pluginManagement> 
     <plugins> 
      <plugin> 
      <groupId>org.jvnet.jax-ws-commons</groupId> 
      <artifactId>jaxws-maven-plugin</artifactId> 
      <executions> 
       <execution> 
       <id>wsimport</id> 
       <phase>generate-sources</phase> 
       <goals> 
        <goal>wsimport</goal> 
       </goals> 
       <configuration> 
        <packageName>za.co.website.application.model</packageName> 
        <sourceDestDir>src/main/java</sourceDestDir> 
        <wsdlFiles> 
        <wsdlFile> 
         ${basedir}/src/jaxws/wsdl/Application.wsdl 
        </wsdlFile> 
        </wsdlFiles> 
        <target>2.1</target> 
        <bindingFiles> 
        <bindingFile> 
         ${basedir}/src/jaxws/binding/bindings.xml 
        </bindingFile> 
        </bindingFiles>     
       </configuration> 
       </execution> 
      </executions> 
      </plugin> 
     </plugins> 
     </build> 
    </profile> 
    </profiles> 

Utiliser -X lorsque vous appelez le script de compilation me montre qu'il est en cours ramassé mvn installation propre -DskipTest -X

... 
[DEBUG] The wsdl File is '...\website-application/src/jaxws/wsdl/Application.wsdl' from 'file:/.../website-application/src/jaxws/wsdl/Application.wsdl' 
[INFO] Processing: file:/.../website-application/src/jaxws/wsdl/Application.wsdl 
[DEBUG] jaxws:wsimport args: [-keep, -s, ...\website-application\src\main\java, -encoding, UTF-8, -Xnocompile, -p, za.co.website.application.model, -target, 2.1, -b, ...\website-application\src\jaxws\binding\bindings.xml] 
[INFO] jaxws:wsimport args: [-keep, -s, ...\website-application\src\main\java, -encoding, UTF-8, -Xnocompile, -p, za.co.website.application.model, -target, 2.1, -b, ...\website-application\src\jaxws\binding\bindings.xml, file:/.../website-application/src/jaxws/wsdl/Application.wsdl] 
parsing WSDL... 
... 

Répondre

1

Ajout node="wsdl:definitions/wsdl:types/xs:schema" et jaxws:globalBindings devrait faire l'affaire, donc le fichier de liaison devrait ressembler à ceci:

<?xml version="1.0" encoding="UTF-8" ?> 
<jaxws:bindings version="2.0" 
     xmlns:jaxws="http://java.sun.com/xml/ns/jaxws" 
     xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
     node="wsdl:definitions/wsdl:types/xs:schema"> 

    <jaxws:globalBindings> 
     <jaxws:javaType name="java.util.Date" xmlType="xsd:dateTime" 
      parseMethod="javax.xml.bind.DatatypeConverter.parseDateTime" 
      printMethod="javax.xml.bind.DatatypeConverter.printDateTime"/> 
     <jaxws:javaType name="java.util.Date" xmlType="xsd:time" 
      parseMethod="javax.xml.bind.DatatypeConverter.parseTime" 
      printMethod="javax.xml.bind.DatatypeConverter.printTime"/> 
     <jaxws:javaType name="java.util.Date" xmlType="xsd:date" 
      parseMethod="javax.xml.bind.DatatypeConverter.parseDate" 
      printMethod="javax.xml.bind.DatatypeConverter.printDate"/> 
    </jaxws:globalBindings> 
</jaxws:bindings> 
Questions connexes