簡體   English   中英

CXF JSON架構驗證

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM