簡體   English   中英

使用cxf JSONProvider的Java到JSON

[英]Java to JSON with cxf JSONProvider

我需要將使用CXF cxf-codegen-plugin WSDL文件生成的對象轉換為JSON字符串。 我並不幸運找到任何解決方案。

據我所知:我已經創建了一個CXF JSONProvider的Spring配置:

<bean id="jsonProvider" class="org.apache.cxf.jaxrs.provider.json.JSONProvider">
    <property name="dropRootElement" value="true"/>
    <property name="dropCollectionWrapperElement" value="false"/>
    <property name="serializeAsArray" value="true"/>
    <property name="ignoreNamespaces" value="true"/>
</bean>

將其注入到我的bean中,現在我正在嘗試使用:

try {
    StringWriter writer = new StringWriter();

    jsonProvider.writeTo(
            evaluationType,
            EvaluationType.class,
            new Annotation[]{},
            MediaType.APPLICATION_JSON_TYPE,
            null,
            new StringOutputStream(writer));

    return writer.toString();
} catch (IOException e) {
    LOGGER.error("e", e);
    return "";
}

問題是,我必須為此方法提供什么樣的注釋? 沒有關於它的文檔。 我正進入(狀態:

Caused by: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnnotationExceptions
com.company.test.evaluation.evaluation.EvaluationImpl$1 is a non-static inner class, and JAXB can't handle those.
    this problem is related to the following location:
        at com.company.test.evaluation.EvaluationImpl$1

這個EvaluationImpl是我在其中調用此方法的類。 請建議我要為該方法提供什么樣的注釋。 或者,也許還有其他方法可以使用CXF JSONProvider做到這一點

我建議您使用Jackson ObjectMapper將Java對象轉換為JSON那里有許多用於配置Jackson ObjectMapper的選項,並且更易於使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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