gpt4 book ai didi

java - Jersey Rest Web 服务返回对象列表,其中对象包含文件的字节数组

转载 作者:行者123 更新时间:2023-11-30 07:31:37 25 4
gpt4 key购买 nike

问题是返回包含一些文件相关信息的文件列表。

这是我的网络服务类:

@Path("/pdfsigning")
public class PdfSigningResource{

@EJB
private PdfSigningFacadeInt pdfSigningFacadeInt;

@POST
@Path("/unsignedfilelist")
@Produces({ MediaType.APPLICATION_OCTET_STREAM, MediaType.APPLICATION_JSON })
public Response getUnsignedFileList() {

List<FileInfoDto> unsignedFileInfoDtoList = pdfSigningFacadeInt
.getUnsignedFileList();

GenericEntity<List<FileInfoDto>> genericUnsignedFileInfoDtoList = new GenericEntity<List<FileInfoDto>>(
unsignedFileInfoDtoList) {
};
return Response.ok(Status.OK).entity(genericUnsignedFileInfoDtoList)
.build();

}
}

省略 getter/setter 的 FileInfoDto 类:

@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class FileInfoDto implements Serializable {

private static final long serialVersionUID = 303766558349361898L;

@XmlElement(name = "fileName")
private String fileName;

@XmlElement(name = "fileType")
private String fileType;

// other fields ...

@XmlElement(name = "fileByteArray")
private byte[] fileByteArray;

这是 jersey-1 客户端:

public class FileService implements FileServiceInt {

public List<FileInfoDto> getUnsignedFileList() {

//code to build url

WebResource unsignedFileListResource = unsignedFileListClient.resource(url);


ClientResponse response = unsignedFileListResource.type(MediaType.APPLICATION_JSON) .post(ClientResponse.class);

if (Constants.CLIENT_RESPONSE_STATUS != response.getStatus()) {
LOGGER.debug(">>>>>>>>>> Response Not OK <<<<<<<<<<<<<");
//TODO throw proper exception
} else {
LOGGER.debug(">>>>>>>>>> Response OK <<<<<<<<<<<<<");
}

// This line throw exception
List<FileInfoDto> entityList = response.getEntity(new GenericType<List<FileInfoDto>>() {
});

return entityList;
}

}

从服务器获得的响应是​​“OK”。但行

List<FileInfoDto> entityList = response.getEntity(new GenericType<List<FileInfoDto>>() {
});

在线程“AWT-EventQueue-0”java.lang.NoClassDefFoundError中抛出异常:javax/mail/internet/MimeMultipart

在 POM 中,我的依赖项为

<dependency>
<groupId>com.sun.jersey.contribs</groupId>
<artifactId>jersey-multipart</artifactId>
<version>1.18.1</version>
</dependency>

我错过了什么?我们不能通过这种方式获取文件列表吗?

最佳答案

对于此版本的 Jersey ,使用 javax.mail.internet.MimeMultipart 需要 Java Mail(请参阅 Jersey 1.x documentation / Mail and MIME multipart )。

将此依赖项添加到您的 pom.xml 中:

<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>

关于java - Jersey Rest Web 服务返回对象列表,其中对象包含文件的字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36033087/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com