一心想着如何解决jersey下载文件的问题, 在度娘上面几乎找不到对应的资料,没办法,啃文档看源码。 看到jersey的扩展MessageBodyWriter。想着应该可以通过这个去解决。
后来又想想,jersey和springmvc同是restful的规范实现, 应该能从springMVC上借鉴,折腾半天无果, 不小心看到jersey支持File, 唉, 暗叹自己走弯路, 老想着复杂的方式去解决!
上源码
@Path("file")
public class FileResource {
@GET
@Path("pdf/{pdf}")
@Produces("pdf/*")
public Response getPDF(@PathParam("pdf") String pdf,
@Context ServletContext application) {
String realPath = application.getRealPath("/images");
realPath = "D:/books/aa.xlsx";
File file = new File(realPath);
if (!file.exists()) {
throw new WebApplicationException(404);
}
String mt = new MimetypesFileTypeMap().getContentType(file);
return Response
.ok(file, mt)
.header("Content-disposition",
"attachment;filename=" + pdf + ".xlsx")
.header("ragma", "No-cache")
.header("Cache-Control", "no-cache").build();
}
}
简单吧, 就几行代码!效率哇效率!
为方便其他人员测试, 把pom.xml共享给大家!
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>simple-service-webapp</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>simple-service-webapp</name>
<build>
<finalName>simple-service-webapp</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<inherited>true</inherited>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.glassfish.jersey</groupId>
<artifactId>jersey-bom</artifactId>
<version>${jersey.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet-core</artifactId>
<!-- use the following artifactId if you don't need servlet 2.x compatibility -->
<!-- artifactId>jersey-container-servlet</artifactId -->
</dependency>
<!-- uncomment this to get JSON support
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-moxy</artifactId>
</dependency>
-->
</dependencies>
<properties>
<jersey.version>2.12</jersey.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</project>
如果编辑报错, 记得增加servlet.jar包!
分享到:
相关推荐
然而,无论采用哪种方式,集成 Spring 和 Jersey 都可以有效地解决 Jersey 单例带来的线程安全问题,确保服务的线程安全性,提升系统的稳定性和可靠性。同时,Spring 还提供了其他优势,比如依赖注入、AOP(面向切面...
本文将深入探讨如何巧妙利用Jersey框架解决文件上传时可能出现的乱码问题,同时也会涉及Maven的使用,以构建Web应用。 首先,了解RESTful WebService的基本概念。REST(Representational State Transfer)是一种...
文件`client - Trying to upload a file to a JAX-RS (jersey) server - Stack Overflow.htm`和`OTN Discussion Forums large file uploads with jersey client ....htm`可能包含了关于这个问题的更深入讨论,包括...
- **社区论坛**:参与Jersey社区讨论,解决开发过程中的问题。 - **教程与示例**:参考网络上的教程和示例代码加深理解。 #### 七、总结 通过上述知识点的介绍,我们了解到Jersey作为RESTful Web Services开发的...
jersey-bundle-1.9.1.jar.zip是一个包含jersey核心库的压缩文件,它是解决此类问题的关键。 Jersey是Sun Microsystems(现已被Oracle收购)推出的开源项目,它是Java EE平台上的一个轻量级、高性能的RESTful Web...
"jersey-server"是Jersey框架的核心组件,用于构建RESTful Web...通过手动添加库文件,可以解决因网络问题导致的依赖下载缓慢的问题。使用Jersey 2.24.1,你可以利用其丰富的特性和稳定性来设计和实现高效的Web服务。
"jersey-server-1.19.zip" 文件是Spring XD中的一个重要组件,它涉及到Jersey服务器,这是一个用于构建RESTful Web服务的Java库。而"spring-xd.zip"则是Spring XD的主要代码库,包含了项目的所有模块和功能。 ...
【标题】"jersey-mvc-jsp-2.8.zip" 涉及的主要知识点是Java Web开发中的Jersey框架、MVC模式以及JSP技术。让我们深入了解一下这些概念。 **Jersey框架** Jersey是Java RESTful Web Services( Representational ...
标题 "jersey 2.2 +spring 3.1.0.RELEASE+hibernate 3.3.1.GA maven 配置文件" 暗示了一个集成开发环境,其中涉及到三个主要的技术组件:Jersey、Spring 和 Hibernate。这个配置文件是基于 Maven 构建系统的,用于...
6. **检查错误日志**:当遇到注入问题时,查看服务器日志是非常重要的,它通常会提供关于问题的详细信息。 7. **测试和调试**:编写单元测试来验证特定的bean是否能被正确地注入。如果使用了IDE,如IntelliJ IDEA或...
通过深入研究这些代码,开发者可以学习如何在实际项目中应用这些技术,同时解决遇到的问题,例如`@PersistenceUnit`注解的问题。 总之,基于Jersey v2.10的Web服务框架提供了一套强大的工具来开发RESTful服务,但...
10. **社区支持**:作为开源项目,Jersey有活跃的社区,提供了丰富的文档、示例代码和讨论论坛,为开发者提供了解决问题和学习新知识的渠道。 总的来说,"jersey所需最新jar包"是Java Web开发中构建RESTful服务的...
总结来说,Java Jersey与Spring的集成为开发RESTful API提供了一个强大而灵活的解决方案。通过使用这两种技术,开发者可以构建高效、易于维护的Web服务,返回JSON数据,满足现代Web应用的需求。这个资源对于想要学习...
本文将通过一个实际的案例,详述整合过程中可能遇到的问题以及解决方法,帮助开发者避免花费过多时间在调试上。 1. **集成环境准备**: - JDK:确保安装了 Java 开发环境,并且版本与项目需求相符。 - Maven 或 ...
由于描述是空的,我们无法直接获取具体信息,但可以假设文章可能涉及了如何集成Jersey到项目中、配置和使用示例,以及可能遇到的问题和解决方案。 标签 "源码" 和 "工具" 提示我们,该话题可能包含了对Jersey源代码...
- 创建所需的配置文件,如`web.xml`(jersey配置)、`applicationContext.xml`(spring配置)和`mybatis-config.xml`(mybatis配置)。 **2. 配置jersey**: - 在`web.xml`中配置jersey的Servlet,指定jersey资源...
【标题】:“maven(jersey+redis+mongodb+spring)集成” 在现代软件开发中,集成多种技术栈是常见的需求。"maven(jersey+redis+mongodb+spring)集成"指的是使用Maven作为项目构建工具,将Jersey用于RESTful API开发...
在IT行业中,构建高效、可扩展的Web服务是至关重要的,而"spring4+springMVC+mybatis完美整合jersey2"就是一种实现这一目标的解决方案。这个项目结合了Spring 4、Spring MVC、MyBatis和Jersey 2这四个强大的技术,...
本文主要介绍了基于Rest的API解决方案,通过jersey框架和swagger集成,实现了API接口文档的自动生成和管理。通过本文,读者可以了解到基于Restful风格的API设计和实现,jersey框架的使用和swagger的集成。 一、项目...
深入理解源码有助于开发者更好地掌握其工作方式,解决遇到的问题,甚至为框架贡献自己的代码。Jersey 的源码是开源的,可以在 GitHub 上找到,这对于学习和调试非常有帮助。 至于“工具”,Jersey 自带了一些实用...