我正在尝试使用Jersey + Jackson编写一个休息服务来上传文件以及其他一些文件信息.
使用multipart,文件正确上传,简单字段也可以,但是应该包含其他数据的POJO始终为null.
简化示例
POJO:
public class Test {
public String name;
public Test() {}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Run Code Online (Sandbox Code Playgroud)
应用:
@ApplicationPath("myapp")
public class JerseyApp extends ResourceConfig {
public JerseyApp() {
register(MultiPartFeature.class);
register(JacksonFeature.class);
packages("com.test.rest");
// Enable Tracing support.
property(ServerProperties.TRACING, "ALL");
}
}
Run Code Online (Sandbox Code Playgroud)
服务:
@Path("file")
public class FileRestService {
@POST
@Path("/upload1")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response createFile1(@FormDataParam("doc") Test doc) {
//doc is always null
return Response.ok(doc.getName()).build();
}
@POST
@Path("/upload2")
@Consumes(MediaType.APPLICATION_JSON) …Run Code Online (Sandbox Code Playgroud)