什么Jersey(有RESTful Web服务支持)版本我需要下载JDK 1.6吗?请提供下载的URL,将会很有帮助.我还需要文件上传支持.客户端和服务器端的jar依赖关系是什么?
用于文件上载的REST服务器代码如下所示:
@Path("/file")
public class FileService {
@POST
@Path("/upload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public void uploadFile(@FormDataParam("file") InputStream uploadedInputStream,@FormDataParam("file") FormDataContentDisposition aFileDetail) {
OutputStream os = null;
try {
File fileToUpload = new File("D:/uploadedFile");
os = new FileOutputStream(fileToUpload);
byte[] b = new byte[2048];
int length;
while ((length = uploadedInputStream.read(b)) != -1) {
os.write(b, 0, length);
}
} catch (IOException ex) {
ex.printStackTrace();
} finally {
try {
os.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
客户端代码如下所示:
Client client = ClientBuilder.newBuilder()
.register(MultiPartFeature.class).build();
WebTarget webTarget = client.target(REST_SERVICE_URL);
MultiPart multiPart = new MultiPart();
FileDataBodyPart fileDataBodyPart = new FileDataBodyPart("file",
new File("d:/classes12-1.jar"),
MediaType.APPLICATION_OCTET_STREAM_TYPE);
multiPart.bodyPart(fileDataBodyPart);
Response response = webTarget.request(
MediaType.MULTIPART_FORM_DATA).post(
Entity.entity(multiPart, multiPart.getMediaType()));
Run Code Online (Sandbox Code Playgroud)
你需要Jersey版本2.6.使用Java 7编译2.6之后的任何内容.您可以从Maven central下载"bundle".捆绑包带有捆绑在一个罐子里的所有核心罐子
jaxrs-ri-2.6.jar(包括服务器和客户端)核心捆绑包没有Multipart支持.你需要添加jersey-media-multipartjar.你可以从这里下载它.除了这个罐子,还需要一个罐子.如果您在链接中向下滚动,您将看到mimepull1.9.3 的链接.你也需要下载它.
如果您正在使用Maven,那么您实际上只需要这两个依赖项
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-multipart</artifactId>
<version>2.6</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
如果客户端项目是一个不同的项目,那么在客户端项目中,您应该只添加以下依赖项和上面的多部分依赖项
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<version>2.6</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
如果客户端项目未使用Maven或其他一些依赖managemnet系统,你将有一个很难让所有的罐子才能,因为没有包含所有的内置只是为客户罐子没有单一的罐子.你可以使用上面的jaxrs-rijar,但它是一个大jar,因为它也有所有的服务器类.因此,如果你需要它来说一个Android客户端,它可能不是一个好主意使用.在这种情况下,最好只使用像Maven或Gradle这样的依赖管理器.
也可以看看:
如果它不适用于jaxrs-ri-2.6.jarjar,请尝试jaxrs-ri-2.6.tar.gz从上面的相同链接下载.解压缩并添加每个目录中的所有jar
| 归档时间: |
|
| 查看次数: |
14009 次 |
| 最近记录: |