Nous migrons notre application de Jboss 6 vers Wildfly 10, la plupart des services Web fonctionnent correctement, mais nous rencontrons un problème avec les balises de date vides dans la réponse d'un site Web externe Service:Wildfly 10 UnmarshalException dans les balises de date vides dans la réponse
java.security.PrivilegedActionException: javax.xml.bind.UnmarshalException
- with linked exception:
[com.sun.istack.SAXParseException2; lineNumber: 1; columnNumber: 784; ]
Caused by: java.lang.IllegalArgumentException:
at org.apache.xerces.jaxp.datatype.XMLGregorianCalendarImpl$Parser.parseBigInteger(Unknown Source)
at org.apache.xerces.jaxp.datatype.XMLGregorianCalendarImpl$Parser.parse(Unknown Source)
at org.apache.xerces.jaxp.datatype.XMLGregorianCalendarImpl.<init>(Unknown Source)
at org.apache.xerces.jaxp.datatype.DatatypeFactoryImpl.newXMLGregorianCalendar(Unknown Source)
at __redirected.__DatatypeFactory.newXMLGregorianCalendar(__DatatypeFactory.java:180)
at com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$12.parse(RuntimeBuiltinLeafInfoImpl.java:592)
... 158 more
la ligne et la colonne sont le début de l'élément suivant
...<ADATE><date />...
Comme vous pouvez le voir ce jour est vide et provoque l'analyseur à l'échec (je suppose que sur la base des preuves)
Ceest un fragment de la définition WSDL pour cet élément XML:
<xsd:element name="ADATE">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="date" minOccurs="1" maxOccurs="100" type="xsd:date"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Nous avons généré nos classes client avec Apache CXF 3.1.6 comme: wsdl2java -frontend jaxws21 ....
- Lors de l'utilisation de l'implémentation de SEIStub, l'appel fonctionne pour le service Web.
- Lorsque vous utilisez le même code à l'intérieur de Wildfly, cela ne fonctionne pas en lançant l'exception décrite.
- Est-ce que toutes ces informations sont nécessaires?
Existe-t-il une autre implémentation JAXB configurable dans Wildfly 10?
Merci
Malheureusement, cela ne fonctionne pas dans notre WSDL, mais d'autres personnes ont proposé la même solution, doit travailler "quelque part". –