配置JAXRS以仅对某些服务bean执行模式验证

时间:2013-05-03 07:52:51

标签: spring cxf jax-rs xsd-validation

我有一个Spring配置的CXF驱动的JAX-RS服务,它有两个服务bean:

 <jaxrs:server id="wsServices">
    <jaxrs:serviceBeans>
       <ref bean="a"/>
       <ref bean="b"/>
    </jaxrs:serviceBeans>
    <jaxrs:schemaLocations>
        <jaxrs:schemaLocation>
           classpath:/schema/webservices.xsd
        </jaxrs:schemaLocation>
    </jaxrs:schemaLocations>
 </jaxrs:server>

<bean id="a" class="AServiceImpl"/> 
<bean id="b" class="BServiceImpl" />

不幸的是,XSD文件只涵盖了两个服务bean中的一个,因此其他一个服务bean在模式验证时失败。

我知道如何完全关闭模式验证,然后两个服务都正常工作(但我宁愿继续进行验证,可以使用它。)

如何将配置更改为仅使用bean a的架构验证,而不是b的架构验证?

1 个答案:

答案 0 :(得分:1)

架构验证是在JAX-RS服务级别设置的,因此您无法直接执行所需操作(无需添加到架构),但可以具有多个<jaxrs:server>实例在具有不同路径的相同webapp中。这应该让你设置你想要的东西而不会有太多麻烦。 (这是CXF更复杂的配置方法的用武之地。)

相关问题