CXF и проверка — ограничения схемы игнорируются
-
19-09-2019 - |
Вопрос
Я работал над веб-сервисом CXF и имел некоторый беда.С помощью SO я проверяю свой сервис по довольно сложной схеме — требованию проекта.Однако я заметил некоторые странные проблемы с проверкой.
Хотя типы данных проверяются (например, случайная буквенно-цифровая строка вместо даты перехватывается и возвращается как ошибка SOAP), ограничения на длину и шаблон не действуют.Если для xs:string установлено значение maxLength, равное 20, и я ввожу 25 символов, служба будет рада помочь.
Я использую 2.2.7-SNAPSHOT. Я застрял с невыпуском из-за другой проблемы в 2.2.6, которую устраняет снимок.У кого-нибудь есть идеи?Я опубликовал более подробную информацию о проекте в других своих вопросах, но дайте мне знать, помогут ли файлы конфигурации или выходные данные.
Решение
Мы общались по IRC, но для целей записи решение состоит в том, чтобы предоставить атрибут wsdlLocation в jaxws:endpoint, чтобы можно было использовать исходный wsdl (и, следовательно, схемы).Без этого он проверяет схему, которую jaxb сгенерирует из классов.Поскольку JAXB не записывает фасеты длины и тому подобное, они будут «потеряны» и, следовательно, не будут проверены.