试图实现某种图像上传功能我发现互联网资源推荐使用FormDataMultiPart或FormDataParam和泽西。
Jersey是一个不错的webframework,也是javaee的一部分。我的问题是,我的api中没有这两个接口。我使用来自Maven javax.javaee-api版本7的javaee api。
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
似乎两者都不是javaee标准的一部分。我的问题是如何使用javaee api启用glassfish上传图像。最好的是使用某种解决方法来使用球衣上传图片。
感谢您的回答
答案 0 :(得分:1)
包含以下依赖项:
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-json</artifactId>
<version>1.18.1</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>1.18.1</version>
</dependency>
<dependency>
<groupId>com.sun.jersey.contribs</groupId>
<artifactId>jersey-multipart</artifactId>
<version>1.18.1</version>
</dependency>
要上传图像,只需使用InputStream表单数据参数声明POST方法,例如:
@POST
@Path(value = "/uploadImage")
@Consumes(value = MediaType.MULTIPART_FORM_DATA)
@Produces(value = MediaType.APPLICATION_JSON)
public Response uploadImage(@FormDataParam("file") InputStream image)
答案 1 :(得分:0)
似乎两者都不是javaee标准的一部分
我会说你说的不完全正确。如果你谈论与之捆绑的GF3和Jersey 1.11.x,那将是真的。但是如果你看看latest Jersey lib documentation 你会发现它现在是标准的一部分。您可以将它与GF4一起使用。
无论如何here您可以找到如何使用Jersey v1.x上传文件的完整示例。它正在与捆绑的Ze3的GS3和1.11.1版本一起使用。
如果您想使用Jersey和GF4来实现这一点,您可以将这些依赖项添加到您的maven pom.xml
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
<version>${jersey-version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>${jersey-version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-common</artifactId>
<version>${jersey-version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-multipart</artifactId>
<version>${jersey-version}</version>
</dependency>