以下是我遇到困难的情况,我在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 **。如果有任何替代方案,请建议。
提前致谢:)
答案 0 :(得分:0)
我不确定为什么默认的消息转换器会出现这种奇怪的行为,它附带了Spring Framework。 我发现从JSON到Object并返回的非常好的消息转换器之一是GSON(Google的一个实用程序)。 处理此类问题的一种可靠方法是通过覆盖类和使用GSON来编写自己的自定义消息转换器。以下是此类解决方案的link。我希望它可以帮助您作为解决方案并且更可靠。
此致 拉胡