JavaのXMLスキーマ定義に対してXMLファイルを検証するのと同じように、WSDLファイルに対してSOAPエンベロープを含むXMLファイルを検証する方法はありますか?WSDLに対するSOAPメッセージの検証
答えて
私は単純な方法を知らない。私たちのプロジェクトでは、WSDLの要素をXSDファイルにコピー&ペーストするだけです。あなたはあなたの代わりにこの仕事をするutilクラスを書くことができます。
一部のWebサービスコンテナは、この機能を提供します。 JBossの3.0.1+が@SchemaValidationアノテーションでこれを行います:あなたは春-WSを使用している場合
http://community.jboss.org/wiki/JBossWS-NativeUserGuide#SchemaValidation
これは面白いです、ありがとう!私はWeblogic 10.3を使用しています。私はそれが同じような機能を持っているかどうかをチェックします。 – L4zl0w
、これは、これらの線に沿ってインターセプタを使用することによって行うことができますして
<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>
再検証イワンKrivyakovによって開発されたツールがあります
http://cxf.apache.org/faq.html#FAQ-HowcanIturnonschemavalidationforjaxwsendpoint%3F
:CXFは、こちらのアプローチでありますqまたは提供されたWSDLおよび/またはXSDに基づいてXMLをrespします。このツールはhttp://www.codeproject.com/Articles/182406/Validating-SOAP-Message-against-WSDLにあります(ログインを作成する必要があります)。
私たちが今行っているのは、xmlであるエンベロープのボディをスキーマ定義に対して検証し、その周りにSOAPエンベロープをラップします。しかし、これはもっとハックのようなもので、適切な方法でそれを行うことに興味があります。 – L4zl0w