[英]CXF JSON Schema Validation
我正在編寫同時支持XML和JSON格式的RESTFul Web服務。 我需要在Web服務中添加架構驗證。 我的bean是使用JAX-B自動生成的。 正如CXF的站點上的Schema驗證所建議的那樣,我使用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
,所以我正在使用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>
您的類路徑錯誤,在Web應用程序中,類路徑為WEB-INF / classes
因此,您可以使用以下配置
<jaxrs:schemaLocations>
<jaxrs:schemaLocation>classpath:po.xsd</jaxrs:schemaLocation>
</jaxrs:schemaLocations>
如果您在classes目錄中有xsd目錄,則classpath:xsd/po.xsd
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.