我正在使用 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 配置来启用模式验证。
对于此示例,模式验证有效。两个示例之间的区别在于第二个示例使用JAX-WS API 和 XMLBeans方法。它有什么关系吗?为什么模式验证不适用于第一个示例?可能,我错过了一些东西。