gpt4 book ai didi

json - Jackson Jaxb Json 与 Apache CXf

转载 作者:行者123 更新时间:2023-12-04 12:51:42 27 4
gpt4 key购买 nike

我在 Apache CXF 的 REST 项目中使用 Jackson Jaxb JSON

JacksonJaxb 版本。 1.7.0 Apache CXF 2.3.1

我正在使用以下代码从我的方法返回。

    @GET
@Consumes({ "application/json", "application/xml", "text/xml" })
@Path("/job/autosuggest")
@Override
public Response getSuggestions(String searchField, Integer resPerPage, String typeCont)
{
List<String> respo = new ArrayList<String>();
respo.add("Atish");
respo.add("Narlawar");
respo.add("India");

return Response.ok(respo).build();
}

现在,当我在码头上编译和运行代码时,问题来了,我卡住了

DEBUG o.s.b.f.s.DefaultListableBeanFactory [] Finished creating instance of bean 'org.apache.cxf.phase.PhaseManager'
org.codehaus.jackson.map.JsonMappingException: Incompatible types: declared root type ([simple type, class javax.ws.rs.core.Response]) vs java.util.ArrayList

这不是数组或包装器所特有的,但是如果我在 Response.ok(object) 中传递的不是 String 而不是任何对象,则无法解析。

我的配置是

  <util:map id="jsonNamespaceMap" map-class="java.util.Hashtable">
<entry key="http://services.institute.com" value=""/>
<entry key="http://cxf.apache.org/bindings/xformat" value="cxf"/>
</util:map>

<bean id="jsonInputFactory" class="org.codehaus.jettison.mapped.MappedXMLInputFactory">
<constructor-arg ref="jsonNamespaceMap"/>
</bean>

<bean id="jsonOutputFactory" class="org.codehaus.jettison.mapped.MappedXMLOutputFactory">
<constructor-arg ref="jsonNamespaceMap"/>
</bean>

<bean id="jsonProvider" class="org.codehaus.jackson.jaxrs.JacksonJaxbJsonProvider"/>

<jaxrs:server id="jobsearch" address="/">
<jaxrs:serviceBeans>
<ref bean="jobSearchService" />
</jaxrs:serviceBeans>
<jaxrs:extensionMappings>
<entry key="text" value="text/xml"/>
<entry key="xml" value="application/xml"/>
<entry key="json" value="application/json"/>
</jaxrs:extensionMappings>
<jaxrs:languageMappings/>
<jaxrs:properties>
<entry key="javax.xml.stream.XMLInputFactory">
<ref bean="jsonInputFactory"/>
</entry>
<entry key="javax.xml.stream.XMLOutputFactory">
<ref bean="jsonOutputFactory"/>
</entry>
</jaxrs:properties>
<jaxrs:providers>
<ref bean="jsonProvider"/>
</jaxrs:providers>
</jaxrs:server>

</beans>

我不确定如何处理这个问题。我已经失去了 1/2 天的时间来获得一些解决方法。任何帮助将不胜感激。

提前致谢!

最佳答案

我终于得到了答案。

问题出在版本本身。JacksonJaxb 报告了 1.7.0 中的错误。

我将版本更新到更高...在我的情况下它是 1.8.5 并且它已修复。

希望这对您有所帮助。

谢谢阿蒂什

关于json - Jackson Jaxb Json 与 Apache CXf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7416816/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com