将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中执行此操作的另一种方法吗?
答案 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,因此您需要添加两者。