jersey-如何对自定义类型的多个@FormParam使用资源方法

jersey-如何对自定义类型的多个@FormParam使用资源方法,jersey,Jersey,我使用jersey,在我的资源类中有一个具有多个参数的方法。这些参数是使用@FormParam填充的,但问题是,参数的类型是自定义java类型,而不是一些原语或字符串。我想将参数值从json转换为自定义java类型。如果我使用@Cosume(MediaType.APPLICATION\u JSON),那么我就不能使用多个参数,如果我删除它,参数就不能从JSON转换为它们的java实例 @POST@Path(“/add”) @使用(MediaType.APPLICATION\u FORM\u UR

我使用jersey,在我的资源类中有一个具有多个参数的方法。这些参数是使用
@FormParam
填充的,但问题是,参数的类型是自定义java类型,而不是一些原语或
字符串。我想将参数值从
json
转换为自定义java类型。如果我使用
@Cosume(MediaType.APPLICATION\u JSON)
,那么我就不能使用多个参数,如果我删除它,参数就不能从JSON转换为它们的java实例

@POST@Path(“/add”)
@使用(MediaType.APPLICATION\u FORM\u URLENCODED)
@产生(MediaType.APPLICATION_JSON)
公共字符串add(@FormParam(“source”)BookEntity source、@FormParam(“author”)authoreEntity a)抛出JsonGenerationException、JsonMappingException、IOException、TransformationException
{
...
}
如果我将参数类型更改为
String
,然后使用Jackson反序列化,我可以将json参数反序列化为java实例,但我也希望对其他方法进行反序列化,并自动完成


我尝试使用中使用的方法,但无法使其工作。

您可以使用自定义类型映射器

无论如何,默认情况下Jersey会尝试使用JAXB映射接收到的json对象表示。显然,你必须为你的对象添加注释