1

我需要将使用 CXF 从 WSDL 文件生成的对象转换cxf-codegen-plugin为 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的方法?

4

1 回答 1

0

我建议您使用 Jackson ObjectMapper将您的 java 对象转换为JSON有很多配置 Jackson 的选项,ObjectMapper并且更易于使用。

于 2013-02-07T08:34:01.273 回答