私はApache CXFを使用してWebサービスを開発しており、スキーマ検証による最初のアプローチを契約しています。問題は、検証が機能していないことです。エラーはありませんので、活性化されていないようです。ただし、検証は構成されています。
そこで、ここで見つけることができる公式の Apache CXF の例を調べました。
wsdl_firstの例を見て、スキーマの検証と WSDL のいくつかの制限を追加して変更しました。
<!-- HTTP Endpoint -->
<jaxws:endpoint xmlns:customer="http://customerservice.example.com/"
id="CustomerServiceHTTP" address="http://localhost:9090/CustomerServicePort"
serviceName="customer:CustomerServiceService" endpointName="customer:CustomerServiceEndpoint"
implementor="com.example.customerservice.server.CustomerServiceImpl">
<jaxws:features>
<bean class="org.apache.cxf.feature.LoggingFeature" />
</jaxws:features>
<!-- schema validation-->
<jaxws:properties>
<entry key="schema-validation-enabled" value="true" />
</jaxws:properties>
</jaxws:endpoint>
驚いたことに、それも機能しません。
わかりましたので、wsdl_first_xmlbeansの例を見てみました。ここでは、README.txt ファイルによると、CXF 構成を使用してスキーマ検証を有効にする方法も示されています。
この例では、スキーマ検証が機能します。両方の例の違いは、2 番目の例がJAX-WS API を使用し、XMLBeansアプローチを使用していることです。それは何か関係がありますか?最初の例でスキーマ検証が機能しないのはなぜですか? おそらく、私は何かが欠けています。