我的RESTful文件上传代码:
@Path("/upload") 
@POST 
@Consumes("multipart/form-data") 
public String post(
    @FormDataParam("part") String s,@FormDataParam("part") FormDataContentdisposition d) { 
    return s + ":" + d.getFileName(); 
}

当我尝试使用curl上传文件时
curl -X POST – 表示part=@file.txt网址

我收到HTTP 415不支持的媒体类型错误.怎么了 ?

解决方法

在尝试了很多例子后,最终在 http://iambigd.blogspot.com/2011/06/java-upload-file-using-jersey.html找到了真正有效的例子
@POST
@Path("/simpleupload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public void simpleUpload(
    //@Context UriInfo ui,@Context HttpServletRequest request
){
    String fileRepository = "D:\\";
    if (ServletFileUpload.isMultipartContent(request)) {
    FileItemFactory factory = new diskFileItemFactory();
    ServletFileUpload upload = new ServletFileUpload(factory);
    List<FileItem> items = null;
    try {
        items = upload.parseRequest(request);
    } catch (FileUploadException e) {
        e.printstacktrace();
    }
    if (items != null) {
        Iterator<FileItem> iter = items.iterator();
        while (iter.hasNext()) {
            FileItem item = iter.next();
            if (!item.isFormField() && item.getSize() > 0) {
            System.out.println("File is found.");
            String fileName = processFileName(item.getName());
            try {
                String savePath = fileRepository + fileName;
                System.out.println("savePath:" + savePath);
                item.write(new File(savePath));
            } catch (Exception e) {
                e.printstacktrace();
            }
        }else{
            System.out.println("getFieldName:" + item.getFieldName());
            System.out.println(item.getString());
        }
     }
   }
}
}

(需要servlet-api.jar,(apache)commons-oi.jar和(apache)commons-fileupload.jar)

java – Http 415 on file上传使用jersey的更多相关文章

  1. xmlhttprequest – AngularJS和位于不同域中的Jersey Webservice之间的通信.无法访问正确的会话

    亲爱的stackoverflow读者,最近我一直在玩AngularJS和JavaEE6.我已经和泽西建立了一个webservice,并在Glassfish上部署了这个项目.因为我需要某种身份验证和OAuth实现,或者JDBCRealm似乎过度杀戮,所以我决定在用户成功登录后创建一个会话.这似乎工作正常,如果我发布到/从Postman或从部署在glassfish上的基本jQuery网页登录,我将获得

  2. java – 使用RolesAllowedDynamicFeature和Jersey授权

    我正在尝试使用JAX-RS过滤器对用户进行身份验证.这是我正在设置新SecurityContext的过滤器:资源方法如下所示:RolesAllowedDynamicFeature的注册方式如下:我可以在控制台上看到预期的输出.但是,如果我取消注释@RolesAllowed(“user”),我会收到Forbidden错误,并且永远不会调用SecurityContext的isUserInRole方法.

  3. Angular SPA + Jersey + SpringMVC 整合应用

    原文排版地址:AngularSPA+Jersey+SpringMVC整合应用AngularSPA单页面应用和MVC控制器的整合,会有一个疑问,SPA中点击链接的跳转,是经过SPA的路由,还是直接被SpringMVC拦截了?

  4. java – Jersey客户端响应状态204

    我正在使用Jersey服务和客户端.当我试图调用该服务时,我收到此错误:我不懂为什么.这是服务:这是客户:我真的不知道问题可能是什么.我知道另一个问题,看似相同的主题,但他们不是.如果我遗漏了某些内容或者您需要任何额外信息,请告诉我.解决方法204是HTTP响应状态代码,通知客户端没有返回内容.当你的客户端调用get(JSONArray.class)时,它期望有200个数据,因此是例外.从服务器实

  5. java – 如何单元测试传入的Jersey MultiPart请求的处理

    编辑运用会抛出一个我认为,在调用我的MultiPartReader之前,还需要以某种方式转换测试生成的MultiPart.在jersey中必须有一些方法,我可以调用它来执行此转换它的方式,当它在已部署的系统上发出MultiPart请求时,或者可能是接收端在接收HTTP请求时进行一些解析..?

  6. java – jersey 2.2:ContainerResponseFilter和ContainerRequestFilter永远不会被执行

    解决方法事实证明,您必须手动注册自定义类–如:完整示例:

  7. java – 要为jersey.repackaged.com.google.common.collect.Maps避免NoClassDefFoundError而添加的Jersey依赖项

    我正在尝试运行一个扩展JerseyTest的测试但是在运行时我得到了一个:知道我缺少什么依赖吗?

  8. java – Http 415 on file上传使用jersey

    我的RESTful文件上传代码:当我尝试使用curl上传文件时curl-XPOST–表示part=@file.txt网址我收到HTTP415不支持的媒体类型错误.怎么了?

  9. java – 使用Jersey的依赖注入

    如果我使用Jersey1.12,并且我有多个资源类,并且它们都需要访问一些共享上下文,那么注入依赖项的最佳方法是什么,无论是在资源类的构造函数中还是在处理程序方法中?我是否需要使用外部DI库,或者Jersey内置了什么?

  10. java – Jersey序列化/反序列化问题:抽象类型只能使用其他类型信息进行实例化

    我正在使用球衣进行序列化和反序列化.我使用jersey在WebLogic上创建了REST通道.我有结果对象包含抽象类.Jersey使用此类的实现名称添加结果元数据:但是,同样的球衣,当用于反序列化这些数据时,会尖叫以下内容:但是他自己已经在他序列化的JSON中提供了这些额外的信息.那么,如何让球衣阅读并理解他创造的这种“@type”注释?

随机推荐

  1. 基于EJB技术的商务预订系统的开发

    用EJB结构开发的应用程序是可伸缩的、事务型的、多用户安全的。总的来说,EJB是一个组件事务监控的标准服务器端的组件模型。基于EJB技术的系统结构模型EJB结构是一个服务端组件结构,是一个层次性结构,其结构模型如图1所示。图2:商务预订系统的构架EntityBean是为了现实世界的对象建造的模型,这些对象通常是数据库的一些持久记录。

  2. Java利用POI实现导入导出Excel表格

    这篇文章主要为大家详细介绍了Java利用POI实现导入导出Excel表格,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  3. Mybatis分页插件PageHelper手写实现示例

    这篇文章主要为大家介绍了Mybatis分页插件PageHelper手写实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  4. (jsp/html)网页上嵌入播放器(常用播放器代码整理)

    网页上嵌入播放器,只要在HTML上添加以上代码就OK了,下面整理了一些常用的播放器代码,总有一款适合你,感兴趣的朋友可以参考下哈,希望对你有所帮助

  5. Java 阻塞队列BlockingQueue详解

    本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景,通过实例代码介绍了Java 阻塞队列BlockingQueue的相关知识,需要的朋友可以参考下

  6. Java异常Exception详细讲解

    异常就是不正常,比如当我们身体出现了异常我们会根据身体情况选择喝开水、吃药、看病、等 异常处理方法。 java异常处理机制是我们java语言使用异常处理机制为程序提供了错误处理的能力,程序出现的错误,程序可以安全的退出,以保证程序正常的运行等

  7. Java Bean 作用域及它的几种类型介绍

    这篇文章主要介绍了Java Bean作用域及它的几种类型介绍,Spring框架作为一个管理Bean的IoC容器,那么Bean自然是Spring中的重要资源了,那Bean的作用域又是什么,接下来我们一起进入文章详细学习吧

  8. 面试突击之跨域问题的解决方案详解

    跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。那怎么解决这个问题呢?接下来我们一起来看

  9. Mybatis-Plus接口BaseMapper与Services使用详解

    这篇文章主要为大家介绍了Mybatis-Plus接口BaseMapper与Services使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  10. mybatis-plus雪花算法增强idworker的实现

    今天聊聊在mybatis-plus中引入分布式ID生成框架idworker,进一步增强实现生成分布式唯一ID,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

返回
顶部