Мы переносим наше приложение с Jboss 6 на Wildfly 10, большинство веб-сервисов работает нормально, но перед нами стоит проблема с пустыми тегами даты в ответе от внешней сети обслуживание:Wildfly 10 UnmarshalException в пустых тегах даты в ответе
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
строка и столбец являются началом следующего элемента
...<ADATE><date />...
Как вы можете видеть дату пуст и приводит к тому, анализатору неудачу (я предполагаю, что на основании доказательств)
Это фрагмент из определения WSDL для этого 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>
Мы сформировали наши клиентские классы с Apache CXF 3.1.6 как: wsdl2java -frontend jaxws21 ....
- При использовании реализации SEIStub вызов работает для веб-службы.
- При использовании одного и того же кода внутри Wildfly он не работает, бросая описанное исключение.
- Нужна ли эта информация?
Есть ли способ другой реализации JAXB, который можно настроить в Wildfly 10 ?, как?
Благодаря
К сожалению, это не работает в нашем WSDL, но некоторые другие люди предложили такое же решение, должно работать "где-то". –