升级Neo4J 3.3.4 - > 3.4.0缺少依赖" com.sun.jersey.multipart.FormDataParam",有什么替代?

时间:2018-06-08 09:52:21

标签: java neo4j graph-databases

将Neo4J从3.3.4升级到3.4.0时依赖" com.sun.jersey.multipart.FormDataParam"不复存在。我们这样使用它:

@POST
@Path("/path/to/api")
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.APPLICATION_JSON)
public Response restorePost(@Context HttpServletRequest httpRequest,
                            @FormDataParam("file") InputStream file) {

    return service.processRequest(httpRequest, file);
}

这是在3.4.0中执行此操作的另一种方法吗?

1 个答案:

答案 0 :(得分:1)

在向Neo4J支持提出这个问题后,我得到了这个答案:

  

与Neo4j 3.3.5不同,其中包括:

     

$NEO4J_HOME/lib/jersey-server-1.19.jar $NEO4J_HOME/lib/jersey-core-1.19.jar $NEO4J_HOME/lib/jersey-multipart-1.19.jar $NEO4J_HOME/lib/jersey-servlet-1.19.jar

     

3.4.0不再包括:

     

$NEO4J_HOME/lib/jersey-multipart-1.19.jar

     

因为核心Neo4j数据库不再使用它。不管你   应该能够简单地添加一个类似于什么的新依赖   描述于   https://mvnrepository.com/artifact/com.sun.jersey.contribs/jersey-multipart/1.9.1   那么这应该解决你的问题。

所以在我的场景中,这是通过将这个依赖项添加到我们的pom.xml来解决的:

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

请注意,该版本与Neo4J的响应中链接的版本不同。不确定答案是否错误,或者是否因为我在候选版本上测试了这个问题。但在我的3.4.0版RC Neo4J服务器中,包含的球衣版本是1.19.3而不是1.19.1(请查看Neo4J服务器的“lib”文件夹)。

除此之外,您还需要确保将正确的jar部署到Neo4J插件文件​​夹中。在我们的例子中,我们使用maven中的配置执行此操作,但您也可以手动添加依赖项。请注意,jersey-multipart 1.19.3依赖于mimepull 1.9.3,因此您需要添加两者。