在spring restful中,GenericType unmarshalling失败了

时间:2014-08-04 13:52:29

标签: java web-services rest spring-mvc unmarshalling

以下是我遇到困难的情况,我在Spring MVC中使用基于Restful的webservice,我在使用JSON。

我有一节课: RegexObject和另一个类RegexObjectDME扩展了RegexObject。 RegexObject位于一个通用项目中,该项目在webservice使用者和Web服务提供者中的RegexObjectDME中使用。

现在,在同一个公共项目中有另一个bean,Say HDTaskInfoBean, 有两个子bean将HDTaskInfoBean扩展为

HDTaskInfoBeanClient extends HDTaskInfoBean<RegexObject>

HDTaskInfoBeanAgent extends HDTaskInfoBean<RegexObjectDME>

除了一些方法之外,RegexObjectDME和RegexObject具有相同的属性。

HDTaskInfoBeanClient和HDTaskInfoBeanAgent也具有相同的属性,并且regexObject和regexObjectDME都有通用的setter getter。 T类型属性名称是regexArray。

在发出请求时使用HDTaskInfoBeanClient,并在Web服务端使用HDTaskInfoBeanAgent。

我收到以下异常: 语法错误。

另一个场景我使用string作为requestbody并尝试使用Gson()将其解组为Java Object,它给出了错误:

请求处理失败;嵌套异常是java.lang.UnsupportedOperationException:期望参数化类型,得到类com。*。  你是否错过了使用TypeToken习语?

请帮忙,我想在Web服务提供商端使用Request和HDTaskInfoBeanAgent中的** HDTaskInfoBeanClient **。如果有任何替代方案,请建议。

提前致谢:)

1 个答案:

答案 0 :(得分:0)

我不确定为什么默认的消息转换器会出现这种奇怪的行为,它附带了Spring Framework。 我发现从JSON到Object并返回的非常好的消息转换器之一是GSON(Google的一个实用程序)。 处理此类问题的一种可靠方法是通过覆盖类和使用GSON来编写自己的自定义消息转换器。以下是此类解决方案的link。我希望它可以帮助您作为解决方案并且更可靠。

此致 拉胡