`

关于Jersey解决文件下载的问题

 
阅读更多
一心想着如何解决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包!
分享到:
评论

相关推荐

    Jersey+Spring:解决Jersey单实例问题

    然而,无论采用哪种方式,集成 Spring 和 Jersey 都可以有效地解决 Jersey 单例带来的线程安全问题,确保服务的线程安全性,提升系统的稳定性和可靠性。同时,Spring 还提供了其他优势,比如依赖注入、AOP(面向切面...

    巧用 Jersey RESTful WebService框架解决文件上传乱码

    本文将深入探讨如何巧妙利用Jersey框架解决文件上传时可能出现的乱码问题,同时也会涉及Maven的使用,以构建Web应用。 首先,了解RESTful WebService的基本概念。REST(Representational State Transfer)是一种...

    jersey上传文件代码

    文件`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社区讨论,解决开发过程中的问题。 - **教程与示例**:参考网络上的教程和示例代码加深理解。 #### 七、总结 通过上述知识点的介绍,我们了解到Jersey作为RESTful Web Services开发的...

    jersey-bundle-1.9.1.jar.zip

    jersey-bundle-1.9.1.jar.zip是一个包含jersey核心库的压缩文件,它是解决此类问题的关键。 Jersey是Sun Microsystems(现已被Oracle收购)推出的开源项目,它是Java EE平台上的一个轻量级、高性能的RESTful Web...

    jersey-server

    "jersey-server"是Jersey框架的核心组件,用于构建RESTful Web...通过手动添加库文件,可以解决因网络问题导致的依赖下载缓慢的问题。使用Jersey 2.24.1,你可以利用其丰富的特性和稳定性来设计和实现高效的Web服务。

    jersey-server-1.19.zip

    "jersey-server-1.19.zip" 文件是Spring XD中的一个重要组件,它涉及到Jersey服务器,这是一个用于构建RESTful Web服务的Java库。而"spring-xd.zip"则是Spring XD的主要代码库,包含了项目的所有模块和功能。 ...

    jersey-mvc-jsp-2.8.zip

    【标题】"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 2.2 +spring 3.1.0.RELEASE+hibernate 3.3.1.GA maven 配置文件" 暗示了一个集成开发环境,其中涉及到三个主要的技术组件:Jersey、Spring 和 Hibernate。这个配置文件是基于 Maven 构建系统的,用于...

    spring jersey整合后无法注入

    6. **检查错误日志**:当遇到注入问题时,查看服务器日志是非常重要的,它通常会提供关于问题的详细信息。 7. **测试和调试**:编写单元测试来验证特定的bean是否能被正确地注入。如果使用了IDE,如IntelliJ IDEA或...

    基于jersey v2.10的webservice核心框架

    通过深入研究这些代码,开发者可以学习如何在实际项目中应用这些技术,同时解决遇到的问题,例如`@PersistenceUnit`注解的问题。 总之,基于Jersey v2.10的Web服务框架提供了一套强大的工具来开发RESTful服务,但...

    jersey所需最新jar包

    10. **社区支持**:作为开源项目,Jersey有活跃的社区,提供了丰富的文档、示例代码和讨论论坛,为开发者提供了解决问题和学习新知识的渠道。 总的来说,"jersey所需最新jar包"是Java Web开发中构建RESTful服务的...

    java jersey spring 集成 开发restful API 服务

    总结来说,Java Jersey与Spring的集成为开发RESTful API提供了一个强大而灵活的解决方案。通过使用这两种技术,开发者可以构建高效、易于维护的Web服务,返回JSON数据,满足现代Web应用的需求。这个资源对于想要学习...

    jersey整合spring示例,亲测可行

    本文将通过一个实际的案例,详述整合过程中可能遇到的问题以及解决方法,帮助开发者避免花费过多时间在调试上。 1. **集成环境准备**: - JDK:确保安装了 Java 开发环境,并且版本与项目需求相符。 - Maven 或 ...

    jersey

    由于描述是空的,我们无法直接获取具体信息,但可以假设文章可能涉及了如何集成Jersey到项目中、配置和使用示例,以及可能遇到的问题和解决方案。 标签 "源码" 和 "工具" 提示我们,该话题可能包含了对Jersey源代码...

    jersey+spring+mybatis框架初使用

    - 创建所需的配置文件,如`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+redis+mongodb+spring)集成"指的是使用Maven作为项目构建工具,将Jersey用于RESTful API开发...

    spring4+springMVC+mybatis完美整合jersey2

    在IT行业中,构建高效、可扩展的Web服务是至关重要的,而"spring4+springMVC+mybatis完美整合jersey2"就是一种实现这一目标的解决方案。这个项目结合了Spring 4、Spring MVC、MyBatis和Jersey 2这四个强大的技术,...

    基于Rest的API解决方案(jersey与swagger集成)

    本文主要介绍了基于Rest的API解决方案,通过jersey框架和swagger集成,实现了API接口文档的自动生成和管理。通过本文,读者可以了解到基于Restful风格的API设计和实现,jersey框架的使用和swagger的集成。 一、项目...

    Jersey初次使用有感

    深入理解源码有助于开发者更好地掌握其工作方式,解决遇到的问题,甚至为框架贡献自己的代码。Jersey 的源码是开源的,可以在 GitHub 上找到,这对于学习和调试非常有帮助。 至于“工具”,Jersey 自带了一些实用...

Global site tag (gtag.js) - Google Analytics