如何将通用列表参数发送到JAX-RS服务?
这是方法签名:
@POST
@Path("findcustomers")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.MULTIPART_FORM_DATA)
public void FindCustomers(@PathParam("branchId") long branchId,
@PathParam("searchOptions") List<SearchOption> searchOptions)
throws Exception {
...
}
SearchOption
是由原始类型组成的简单Java类:class SearchOption {
int channelId;
int locationId;
int targetStatus;
}
上面的代码引发了一个异常,表明:
找不到类型为参数的注入源[在此处放置方法签名]
最佳答案
好的,经过长期艰苦的研究,我找到了解决方案。
为了能够在服务方法中接受POJO,您需要向POJO添加@XmlRootElement属性,在类中编写一个无参数的构造函数,并为该字段提供getter / setter方法。
我一直在使用Maven,因此这里是pom.xml中所需的最低要求:
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>2.22.1</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>2.23.1</version>
</dependency>
现在,您可以在api方法中发送和接收POJO对象。