Проверьте сообщение SOAP против WSDL - PullRequest
8 голосов
/ 20 июля 2011

Так же, как проверка XML-файла по определению XML-схемы в Java, есть ли способ проверки XML-файла, который содержит конверт SOAP, по WSDL-файлу?

Ответы [ 4 ]

1 голос
/ 20 июля 2011

Некоторые контейнеры веб-служб предоставляют эту функцию.JBoss 3.0.1+ делает это с аннотацией @SchemaValidation:

http://community.jboss.org/wiki/JBossWS-NativeUserGuide#SchemaValidation

1 голос
/ 22 июля 2011

Если вы используете Spring-WS, это можно сделать с помощью перехватчика по следующим направлениям:

<sws:interceptors>
    <sws:payloadRoot namespaceUri="...">
        <bean id="validatingInterceptor"
            class="org.springframework.ws.soap.server.endpoint.interceptor.PayloadValidatingInterceptor">
            <property name="schema" value="classpath:/wsdl/schema.xsd" />
            <property name="validateRequest" value="true" />
            <property name="validateResponse" value="true" />
        </bean>
    </sws:payloadRoot>
</sws:interceptors>

С CXF, вот подход:

http://cxf.apache.org/faq.html#FAQ-HowcanIturnonschemavalidationforjaxwsendpoint%3F

0 голосов
/ 11 июля 2012

Существует инструмент, разработанный Иваном Кривяковым, который проверяет необходимые или соответствующие XML-файлы на основе WSDL и / или XSD.Инструмент доступен по номеру http://www.codeproject.com/Articles/182406/Validating-SOAP-Message-against-WSDL (хотя вам необходимо создать логин.)

0 голосов
/ 20 июля 2011

Я не знаю простой способ.В нашем проекте мы просто копируем и вставляем элемент из WSDL в файл XSD.Вы можете написать класс утилит, который сделает эту работу вместо вас.

...