在JAVAEE Glassfish中启用FormDataMultiPart或@FormDataParam

时间:2014-04-04 22:56:04

标签: java java-ee glassfish jersey

试图实现某种图像上传功能我发现互联网资源推荐使用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上传图像。最好的是使用某种解决方法来使用球衣上传图片。

感谢您的回答

2 个答案:

答案 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>