我需要将使用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 执行此操作?