You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Sergey Beryozkin (JIRA)" <ji...@apache.org> on 2017/06/13 16:13:00 UTC
[jira] [Resolved] (CXF-7397) Binding xs:dateTime in apache
wadl2java doesn't work
[ https://issues.apache.org/jira/browse/CXF-7397?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sergey Beryozkin resolved CXF-7397.
-----------------------------------
Resolution: Fixed
Assignee: Sergey Beryozkin
Fix Version/s: Invalid
Hi, "-tMap" does not control how JAXB compiler processes XML Schema, it controls how elements in a WADL grammar are mapped to the input/output JAX-RS resource method parameters.
I believe you should create a JAXB binding file and use a wadl2java "-binding" option
Please follow up at the cxf users list if you have any problems resolving this issue, thanks
> Binding xs:dateTime in apache wadl2java doesn't work
> ----------------------------------------------------
>
> Key: CXF-7397
> URL: https://issues.apache.org/jira/browse/CXF-7397
> Project: CXF
> Issue Type: Bug
> Components: JAXB Databinding
> Affects Versions: 3.1.11
> Reporter: Francisco GarcĂa
> Assignee: Sergey Beryozkin
> Fix For: Invalid
>
>
> I'm trying to replace 'dateTime type default class (XMLGregorianCalendar) for other while generating stubs. But doesn't work.
> wadl2java -verbose -d "/home/franciscogarcia/wsdlfiles/claims" -tMap "{http://www.w3.org/2001/XMLSchema}dateTime=java.lang.String" /home/franciscogarcia/wsdlfiles/newclaims.wadl
> Command finish Ok, and stubs classes are generated but 'dateTime' fields are XMLGregorianCalendar instances.
> This is generated stub:
> package com.bbva.qzqp.claims.facade.v01;
> import java.util.ArrayList;
> import java.util.List;
> import javax.xml.bind.annotation.XmlAccessType;
> import javax.xml.bind.annotation.XmlAccessorType;
> import javax.xml.bind.annotation.XmlElement;
> import javax.xml.bind.annotation.XmlSchemaType;
> import javax.xml.bind.annotation.XmlType;
> import javax.xml.datatype.XMLGregorianCalendar;
> import com.bbva.jee.arq.spring.core.servicing.utils.Link;
> import com.bbva.jee.arq.spring.core.servicing.utils.Money;
> /**
> * <p>Clase Java para claim complex type.
> *
> * <p>El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase.
> *
> * <pre>
> * <complexType name="claim">
> * <complexContent>
> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
> * <sequence>
> * <element name="claimId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
> * <element name="claimName" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
> * <element name="claimUpDate" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/>
> * <element name="claimType" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
> * <element name="estimatedCost" type="{urn:com:bbva:jee:arq:spring:core:servicing:utils}money" minOccurs="0"/>
> * <element name="claimers" type="{urn:com:bbva:qzqp:claims:facade:v01}claimer" maxOccurs="unbounded" minOccurs="0"/>
> * <element name="issues" type="{urn:com:bbva:qzqp:claims:facade:v01}issue" maxOccurs="unbounded" minOccurs="0"/>
> * <element name="links" type="{urn:com:bbva:jee:arq:spring:core:servicing:utils}link" maxOccurs="unbounded" minOccurs="0"/>
> * </sequence>
> * </restriction>
> * </complexContent>
> * </complexType>
> * </pre>
> *
> *
> */
> @XmlAccessorType(XmlAccessType.FIELD)
> @XmlType(name = "claim", propOrder = {
> "claimId",
> "claimName",
> "claimUpDate",
> "claimType",
> "estimatedCost",
> "claimers",
> "issues",
> "links"
> })
> public class Claim {
> protected String claimId;
> protected String claimName;
> @XmlSchemaType(name = "dateTime")
> protected XMLGregorianCalendar claimUpDate;
> protected String claimType;
> protected Money estimatedCost;
> @XmlElement(nillable = true)
> protected List<Claimer> claimers;
> @XmlElement(nillable = true)
> protected List<Issue> issues;
> @XmlElement(nillable = true)
> protected List<Link> links;
> ...
> }
> And this is Wadl file:
> <application xmlns="http://wadl.dev.java.net/2009/02" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:prefix1="urn:com:bbva:qzqp:claim:facade:v01">
> <grammars>
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="urn:com:bbva:jee:arq:spring:core:servicing:utils" attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="urn:com:bbva:jee:arq:spring:core:servicing:utils">
> <xs:element name="link" type="tns:link"/>
> <xs:element name="money" type="tns:money"/>
> <xs:complexType name="money">
> <xs:sequence>
> <xs:element minOccurs="0" name="amount" type="xs:decimal"/>
> <xs:element minOccurs="0" name="currency" type="xs:string"/>
> </xs:sequence>
> </xs:complexType>
> <xs:complexType name="link">
> <xs:sequence/>
> <xs:attribute name="href" type="xs:string"/>
> <xs:attribute name="method" type="xs:string"/>
> <xs:attribute name="rel" type="xs:string"/>
> </xs:complexType>
> </xs:schema>
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ns1="urn:com:bbva:jee:arq:spring:core:servicing:utils" xmlns:tns="urn:com:bbva:qzqp:claim:facade:v01" attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="urn:com:bbva:qzqp:claim:facade:v01">
> <xs:import namespace="urn:com:bbva:jee:arq:spring:core:servicing:utils"/>
> <xs:element name="claim" type="tns:claim"/>
> <xs:element name="claimer" type="tns:claimer"/>
> <xs:element name="issue" type="tns:issue"/>
> <xs:complexType name="claim">
> <xs:sequence>
> <xs:element minOccurs="0" name="claimId" type="xs:string"/>
> <xs:element minOccurs="0" name="claimName" type="xs:string"/>
> <xs:element minOccurs="0" name="claimUpDate" type="xs:dateTime"/>
> <xs:element minOccurs="0" name="claimType" type="xs:string"/>
> <xs:element minOccurs="0" name="estimatedCost" type="ns1:money"/>
> <xs:element maxOccurs="unbounded" minOccurs="0" name="claimers" nillable="true" type="tns:claimer"/>
> <xs:element maxOccurs="unbounded" minOccurs="0" name="issues" nillable="true" type="tns:issue"/>
> <xs:element maxOccurs="unbounded" minOccurs="0" name="links" nillable="true" type="ns1:link"/>
> </xs:sequence>
> </xs:complexType>
> <xs:complexType name="claimer">
> <xs:sequence>
> <xs:element minOccurs="0" name="claimerEmail" type="xs:string"/>
> <xs:element minOccurs="0" name="claimerId" type="xs:string"/>
> <xs:element minOccurs="0" name="claimerName" type="xs:string"/>
> <xs:element minOccurs="0" name="claimerPhoto" type="xs:string"/>
> </xs:sequence>
> </xs:complexType>
> <xs:complexType name="issue">
> <xs:sequence>
> <xs:element minOccurs="0" name="issueDescription" type="xs:string"/>
> <xs:element minOccurs="0" name="issueId" type="xs:string"/>
> </xs:sequence>
> </xs:complexType>
> </xs:schema>
> </grammars>
> <resources base="http://localhost:8081/qzqp/claims">
> <resource path="/V01" id="com.bbva.qzqp.claims.facade.v01.SrvClaimV01">
> <method name="GET" id="getClaims">
> <request>
> <param name="$filter" style="query" default="null" type="xs:string"/>
> <param name="$fields" style="query" default="null" type="xs:string"/>
> <param name="$expands" style="query" default="null" type="xs:string"/>
> <param name="$sort" style="query" default="null" type="xs:string"/>
> </request>
> <response>
> <representation mediaType="application/json" element="prefix1:claims"/>
> </response>
> </method>
> <method name="POST" id="addClaim">
> <request>
> <representation mediaType="application/json" element="prefix1:claim"/>
> </request>
> <response>
> <representation mediaType="application/json"/>
> </response>
> </method>
> <resource path="/claimsHead">
> <method name="HEAD" id="claimsHead">
> <response>
> <representation mediaType="application/json"/>
> </response>
> </method>
> </resource>
> <resource path="/{idClaim}">
> <param name="idClaim" style="template" type="xs:string"/>
> <method name="GET" id="getClaim">
> <request>
> <param name="$expands" style="query" default="null" type="xs:string"/>
> </request>
> <response>
> <representation mediaType="application/json" element="prefix1:claim"/>
> </response>
> </method>
> </resource>
> <resource path="/{idClaim}/claimers">
> <param name="idClaim" style="template" type="xs:string"/>
> <method name="GET" id="getClaimers">
> <request></request>
> <response>
> <representation mediaType="application/json" element="prefix1:claimers"/>
> </response>
> </method>
> </resource>
> <resource path="/{idClaim}/claimers/{idClaimer}">
> <param name="idClaim" style="template" type="xs:string"/>
> <param name="idClaimer" style="template" type="xs:string"/>
> <method name="DELETE" id="deleteClaimer">
> <request></request>
> <response>
> <representation mediaType="application/json"/>
> </response>
> </method>
> </resource>
> <resource path="/{idClaim}/claimers/{idClaimer}">
> <param name="idClaim" style="template" type="xs:string"/>
> <param name="idClaimer" style="template" type="xs:string"/>
> <method name="GET" id="getClaimer">
> <request></request>
> <response>
> <representation mediaType="application/json" element="prefix1:claimer"/>
> </response>
> </method>
> </resource>
> <resource path="/{idClaim}/claimers/{idClaimer}">
> <param name="idClaim" style="template" type="xs:string"/>
> <param name="idClaimer" style="template" type="xs:string"/>
> <method name="PUT" id="modifyClaimer">
> <request>
> <representation mediaType="application/json" element="prefix1:claimer"/>
> </request>
> <response>
> <representation mediaType="application/json"/>
> </response>
> </method>
> </resource>
> <resource path="/{idClaim}/issues">
> <param name="idClaim" style="template" type="xs:string"/>
> <method name="GET" id="getIssues">
> <request></request>
> <response>
> <representation mediaType="application/json" element="prefix1:issues"/>
> </response>
> </method>
> </resource>
> <resource path="/{idClaim}/issues/{idIssue}">
> <param name="idClaim" style="template" type="xs:string"/>
> <param name="idIssue" style="template" type="xs:string"/>
> <method name="DELETE" id="deleteIssue">
> <request></request>
> <response>
> <representation mediaType="application/json"/>
> </response>
> </method>
> </resource>
> <resource path="/{idClaim}/issues/{idIssue}">
> <param name="idClaim" style="template" type="xs:string"/>
> <param name="idIssue" style="template" type="xs:string"/>
> <method name="GET" id="getIssue">
> <request></request>
> <response>
> <representation mediaType="application/json" element="prefix1:issue"/>
> </response>
> </method>
> </resource>
> <resource path="/{idClaim}/issues/{idIssue}">
> <param name="idClaim" style="template" type="xs:string"/>
> <param name="idIssue" style="template" type="xs:string"/>
> <method name="PUT" id="modifyIssue">
> <request>
> <representation mediaType="application/json" element="prefix1:issue"/>
> </request>
> <response>
> <representation mediaType="application/json"/>
> </response>
> </method>
> </resource>
> <resource path="/{id}">
> <param name="id" style="template" type="xs:string"/>
> <method name="DELETE" id="deleteClaim">
> <request></request>
> <response>
> <representation mediaType="application/json"/>
> </response>
> </method>
> </resource>
> <resource path="/{id}">
> <param name="id" style="template" type="xs:string"/>
> <method name="PUT" id="modifyClaim">
> <request>
> <representation mediaType="application/json" element="prefix1:claim"/>
> </request>
> <response>
> <representation mediaType="application/json"/>
> </response>
> </method>
> </resource>
> <resource path="/{id}/claimers">
> <param name="id" style="template" type="xs:string"/>
> <method name="POST" id="addClaimer">
> <request>
> <representation mediaType="application/json" element="prefix1:claimer"/>
> </request>
> <response>
> <representation mediaType="application/json"/>
> </response>
> </method>
> </resource>
> <resource path="/{id}/issues">
> <param name="id" style="template" type="xs:string"/>
> <method name="POST" id="addIssue">
> <request>
> <representation mediaType="application/json" element="prefix1:issue"/>
> </request>
> <response>
> <representation mediaType="application/json"/>
> </response>
> </method>
> </resource>
> </resource>
> </resources>
> </application>
> What's wrong?.
> Thanks in advance!.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)