【发布时间】:2016-04-21 22:28:41
【问题描述】:
我正在编写支持 XML 和 JSON 格式的 RESTFul 网络服务。我需要在 web 服务中添加模式验证。我的 bean 是使用 JAX-B 自动生成的。正如 CXF 的网站 Schema validation 所建议的那样,我使用 org.codehaus.jackson.jaxrs.JacksonJaxbJsonProvider 作为 JSON 提供程序,使用 org.apache.cxf.jaxrs.provider.JAXBElementProvider 作为 JAX-B 提供程序。请求和响应工作正常,但现在我想添加架构验证。
上面 CXF 链接中的示例代码不适用于我的 JSON 模式验证(它适用于 XML 模式验证)。他们为org.apache.cxf.jaxrs.provider.json.JSONProvider(在“架构验证”部分下)展示了它,这对我不起作用,因为我的 bean 是 JAX-B 生成的,所以我使用的是JacksonJaxbJsonProvider。
这个问题有什么解决办法吗?有人可以建议一些我可以尝试的方法吗?
下面是 XML 配置:
<bean id="jsonProvider" class="org.codehaus.jackson.jaxrs.JacksonJaxbJsonProvider"/>
<bean id="schemaHolder" class="org.apache.cxf.jaxrs.utils.schemas.SchemaHandler">
<property name="schemas" ref="theSchemas"/>
</bean>
<util:list id="theSchemas">
<value>classpath:/WEB-INF/classes/po.xsd</value>
</util:list>
<!-- Person REST Service Configurations -->
<bean id="personRESTServiceImpl" class="com.abc.webservices.service.rest.PersonRESTService" />
<jaxrs:server id="personRESTService" address="/person-rest-service">
<jaxrs:serviceBeans>
<ref bean="personRESTServiceImpl" />
</jaxrs:serviceBeans>
<jaxrs:providers>
<ref bean="jaxbProvider" />
<ref bean='jsonProvider' />
</jaxrs:providers>
</jaxrs:server>
【问题讨论】:
-
还有一个没有被复制的配置。其:
标签: json web-services cxf