根据WSDL验证SOAP消息

时间:2011-07-20 15:20:02

标签: java validation soap wsdl

就像在Java中针对XML Schema Definition验证XML文件一样,有没有办法验证包含针对WSDL文件的SOAP Envelope的XML文件?

4 个答案:

答案 0 :(得分:1)

某些Web服务容器提供此功能。 JBoss 3.0.1+使用@SchemaValidation注释执行此操作:

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

答案 1 :(得分:1)

如果您使用的是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

答案 2 :(得分:0)

我不知道简单的方法。在我们的项目中,我们只是将元素从WSDL复制并粘贴到XSD文件中。你可以编写一个util类来代替你。

答案 3 :(得分:0)

Ivan Krivyakov开发了一个工具,它根据提供的WSDL和/或XSD验证req或resp XML。该工具位于http://www.codeproject.com/Articles/182406/Validating-SOAP-Message-against-WSDL(需要您创建登录名。)