通过 RESTful CXF 使用多部分/表单数据

2023-11-21

我一直在一个 Web 服务中工作,该服务使用 Apache CXF 与 Jackson 结合使用和生成 JSON 文件。
但是,该服务的方法之一应该能够保存从移动应用程序上传的图像,该应用程序向我的网络服务发出多部分/表单数据 POST 请求,并且我不知道如何在我的应用程序中处理这种内容类型语境。我们通常创建“Request”和“Response”对象来使用和生成 JSON,但是,恐怕这不适用于这种情况。

这是请求格式:

Content-type: multipart/form-data
"Description": text/plain
"Path": text/plain
"Image": image/jpeg

如何正确消费此类请求并将图片保存到服务器端?


[EDIT]

我设法使用以下方法使用 multipart/form-data:

public returnType savePicture(
                @Multipart(value = "mode", type = "text/plain") String mode,
                @Multipart(value = "type", type = "text/plain") String type,
                @Multipart(value = "path", type = "text/plain") String path
                @Multipart(value = "image", type = "image/jpeg") Attachment image
            ) 
    {

但是,当尝试使用以下 POST 请求时:

Content-type: multipart/form-data, boundary=AaB03x

--AaB03x
content-disposition: form-data; name="mode"

T
--AaB03x
content-disposition: form-data; name="type"

M
--AaB03x
content-disposition: form-data; name="path"

c:/img/
--AaB03x
content-disposition: form-data; name="image"; filename="image.jpg"
Content-Type: image/jpeg
Content-Transfer-Encoding: binary

imgdata
--AaB03x--

我收到以下错误:

javax.ws.rs.BadRequestException:org.apache.cxf.jaxrs.utils.multipart.MultipartReadException:没有带有内容ID的多部分type找到,请求内容类型:multipart/form-data;boundary=AaB03x

当我只消费mode,例如,它工作得很好。它只会中断 2 个或更多参数。知道为什么这是错误的吗?


我以前也遇到过类似的问题。

下面的代码对我有用

@POST
@Consumes("multipart/form-data")
public void yourMethod(<params>) throws Exception {
}

简而言之,我认为@Consumes您缺少的注释。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过 RESTful CXF 使用多部分/表单数据 的相关文章

  • 如何在 Openfire 中使用 smack

    你好 我计划开发一个可以连接到 gtalk facebook 等的聊天客户端 我决定将 smack API 与 openfire 一起使用 但我需要很少的指导来了解如何将它与 openfire 服务器一起使用 openfire 是否提供了基
  • 如何将jscrollpane添加到jframe?

    我有以下源代码 有人可以给我建议如何将 jscrollpane 添加到 jframe 上吗 我尝试了几次将其添加到 jframe 但没有任何进展 它甚至没有显示 public class Form3 JFrame jframe new JF
  • 删除优先级队列的尾部元素

    如何删除优先级队列的尾部元素 我正在尝试使用优先级队列实现波束搜索 一旦优先级队列已满 我想删除最后一个元素 优先级最低的元素 Thanks 没有简单的方法 将元素从原始元素复制到新元素 最后一个除外 PriorityQueue remov
  • 埃拉托色尼筛法 - 实现返回一些非质数值?

    我用 Java 实现了埃拉托斯特尼筛法 通过伪代码 public static void sieveofEratosthenes int n boolean numArray numArray new boolean n for int i
  • 使用 django-rest-framework 设置对象级权限

    尝试使用 django rest framework 最干净 最规范地管理 django guardian 对象级权限 我想将对象的读取权限 module view object 分配给在执行 POST 时发出请求的用户 我的基于阶级的观点
  • Android 中 localTime 和 localDate 的替代类有哪些? [复制]

    这个问题在这里已经有答案了 我想使用从 android API 获得的长值 该值将日期返回为长值 表示为自纪元以来的毫秒数 我需要使用像 isBefore plusDays isAfter 这样的方法 Cursor managedCurso
  • Spring数据中的本机查询连接

    我有课 Entity public class User Id Long id String name ManyToMany List
  • 从 WCF REST 获取错误详细信息

    我有一个由 Net WCF 客户端使用的 REST 服务 遇到错误时 REST 服务会返回 HTTP 400 错误请求 响应正文包含 JSON 序列化详细信息 如果我使用 Fiddler Javascript 或直接从 C 执行请求 我可以
  • 是否可以从 servlet 内部以编程方式设置请求上下文路径?

    这是一个特殊情况 我陷入了处理 企业 网络应用程序的困境 企业应用程序正在调用request getContext 并将其与另一个字符串进行比较 我发现我可以使用 getServletContext getContextPath 获取 se
  • 如何使用正则表达式验证 1-99 范围?

    我需要验证一些用户输入 以确保输入的数字在 1 99 范围内 含 这些必须是整数 Integer 值 允许前面加 0 但可选 有效值 1 01 10 99 09 无效值 0 007 100 10 5 010 到目前为止 我已经制定了以下正则
  • 如何通过注解用try-catch包装方法?

    如果应该在方法调用中忽略异常 则可以编写以下内容 public void addEntryIfPresent String key Dto dto try Map
  • 用于缓存的 Servlet 过滤器

    我正在创建一个用于缓存的 servlet 过滤器 这个想法是将响应主体缓存到memcached 响应正文由以下方式生成 结果是一个字符串 response getWriter print result 我的问题是 由于响应正文将不加修改地放
  • 寻找局部最小值

    下面的代码正确地找到了数组的局部最大值 但未能找到局部最小值 我已经进行了网络搜索 以找到找到最小值的最佳方法 并且根据这些搜索 我认为我正在使用下面的正确方法 但是 在几天的时间里多次检查每一行之后 下面的代码中有一些我仍然没有看到的错误
  • Java - 从 XML 文件读取注释

    我必须从 XML 文件中提取注释 我找不到使用 JDOM 或其他东西来让它们使用的方法 目前我使用 Regex 和 FileReader 但我不认为这是正确的方法 您可以使用 JDOM 之类的东西从 XML 文件中获取注释吗 或者它仅限于元
  • 避免 Java 中的重复导入:继承导入?

    有没有办法 继承 导入 Example 常见枚举 public enum Constant ONE TWO THREE 使用此枚举的基类 public class Base protected void register Constant
  • Lombok @Builder 不创建不可变对象?

    在很多网站上 我看到 lombok Builder 可以用来创建不可变的对象 https www baeldung com lombok builder singular https www baeldung com lombok buil
  • 如何让 Emma 或 Cobertura 与 Maven 一起报告其他模块中源代码的覆盖率?

    我有一个带有 Java 代码的多模块 Maven 设置 我的单元测试在其中一个模块中测试多个模块中的代码 当然 这些模块具有相互依赖性 并且在测试执行之前根据需要编译所有相关模块中的代码 那么 如何获得整个代码库覆盖率的报告 注意 我不是问
  • JMS 中的 MessageListener 和 Consumer 有什么区别?

    我是新来的JMS 据我了解Consumers能够从队列 主题中挑选消息 那么为什么你需要一个MessageListener因为Consumers会知道他们什么时候收到消息吗 这样的实际用途是什么MessageListener 编辑 来自Me
  • ECDH使用Android KeyStore生成私钥

    我正在尝试使用 Android KeyStore Provider 生成的私有文件在 Android 中实现 ECDH public byte ecdh PublicKey otherPubKey throws Exception try
  • HttpClient请求设置属性问题

    我使用这个 HttpClient 库玩了一段时间 几周 我想以某种方式将属性设置为请求 不是参数而是属性 在我的 servlet 中 我想使用 Integer inte Integer request getAttribute obj 我不

随机推荐

  • 传输编码:Windows Phone 中的分块

    我有一个带有 Transfer Encoding chunked 的服务器响应 HTTP 1 1 200 OK Server nginx 1 2 1 Date Mon 18 Feb 2013 08 22 49 GMT Content Typ
  • 如何合并两个不同的 Git 存储库?

    我有两个 Github 存储库 一个存储库位于远程服务器上 另一个存储库位于本地服务器上 它们都有不同文件和文件夹的不同提交历史记录 现在我想合并它们 以便我可以将它们作为一个存储库放在远程服务器上 请帮忙 我寻找了各种解决方案 建议如下
  • JS Promise - 立即从返回 Promise 的函数中检索一些数据

    谁能推荐一种从返回 Promise 的函数中立即检索数据的模式 我的 简化的 示例是 AJAX 预加载器 loadPage index html then displayPage 如果这是下载一个大页面 我希望能够检查正在发生的情况 并可能
  • 有没有办法确定理想的线程数? [复制]

    这个问题在这里已经有答案了 我正在做一个网络爬虫并使用线程来下载页面 我的程序性能的第一个限制因素是带宽 我永远无法下载它可以获得的更多页面 第二件事是我感兴趣的 我使用线程同时下载许多页面 但是当我创建更多线程时 会发生更多的处理器共享
  • R Dataframe 中的级别

    我从 csv 文件导入数据 并附加数据集 我的问题 一个变量是整数形式 有 295 个级别 我需要使用这个变量来创建其他变量 但我不知道如何处理这些级别 这些是什么 我该如何处理它们 当您使用 read table 或 read csv 您
  • 是否可以将动态程序集保存到磁盘?

    最近买了阿延德的书在 Boo 中构建 DSL 购买它 阅读它 太棒了 但是我遇到了一个实现问题 我想看看生成的代码是什么样的 我通常会使用反射器来查看代码 但在这种情况下 程序集是动态的并且仅在内存中 有没有办法将动态程序集保存到磁盘以便我
  • 覆盖路由器并向特定路由添加参数(在使用路径/url 之前)

    我会使用一个简单的管理路由系统 例如现在我有这条路线 welcome ANY ANY ANY acmedemo example index ANY ANY ANY acme demos acmedemo example edit ANY A
  • 如何使用证书而不是密码进行身份验证?

    我正在构建一个小型 C MVC5 应用程序 并准备向其中添加用户安全模块 之前我只是创建了一个会话变量来测试角色 但是 我的安全需求不适合我见过的任何预构建的安全模块 即 SimpleMembership 等 总结一下我的情况和需求 没有密
  • Yii2 DetailView:使用函数的属性值[重复]

    这个问题在这里已经有答案了 当我使用函数获取属性值时出现错误 并且使用 Gridview 可以正常工作 我做错了什么
  • 解决部分链接中的相对重定位

    我注意到使用 r看来 进行部分链接实际上并不能解决任何重定位问题 即使它们可以通过相对寻址来解决 例如 考虑f o and g o with f o含有f 哪个调用g within g o 链接之前 拆卸和重定位均符合预期 部分链接到新文件
  • Python 之禅“显式优于隐式”

    我试图理解 隐式 和 显式 在 Python 上下文中的真正含义 a my understanding is that this is implicit if not a print list is empty my understandi
  • 如何让abap程序暂停?

    出于测试目的 我需要我的 ABAP 程序等待几秒钟 如何才能做到这一点 2个解决方案 1 要么使用等待 秒 WAIT UP TO 42 SECONDS WAIT UP TO 0 5 SECONDS decimals are possible
  • C++0x:在 std::map 中存储任何类型的 std::function

    我试图在地图中存储一组 std function 在 GCC 4 5 下 我想要得到两种东西 存储已传递参数的函数 那么你就拥有了 调用 f 存储不带参数的函数 那么你必须打电话 F 我想我通过类 Command 和 Manager 实现了
  • 使用不同版本的引用DLL

    不知何故 我很幸运 从未遇到过这个问题 尽管我认为这是一个常见问题 我有一个网络项目 我们称之为SomeProject SomeProject有对第三方库的引用 我们称之为SomeThirdParty 版本1 0 SomeProject还有
  • PromiseRejectionEvent是如何触发的?

    我对以下问题感到困惑 defined onunhandledrejection window onunhandledrejection event gt event preventDefault console log catch unha
  • 提交表单后按 Enter 键时会触发 Google 地方自动完成 place_changed 事件

    我已将 Google Maps Javascript API V3 中的 google maps places Autocomplete 添加到基本搜索表单中 我试图找到一种可靠的方法来检测用户是否从自动完成列表中选择了某个项目 使用鼠标或
  • zipfile 无法处理某些类型的 zip 数据?

    我在尝试解压缩 zip 文件时遇到了这个问题 zipfile is zipfile my file 总是返回 False 即使 UNIX 命令 unzip 可以很好地处理它 另外 当尝试做zipfile ZipFile path file
  • 检查返回 int 的函数时出错

    如果我有一个返回某种指针的函数 我会通过将错误返回设置为 NULL 来检查错误 char foo void If stuff doesn t go okay return NULL char bar foo if bar return 1
  • Visual Studio 监视窗口中的问号 (???) 表示什么?

    我遇到了异常并查看监视窗口中的变量 我看到一些问号 这是否意味着它指向无效地址 这意味着调试器无法计算出它的值 例如 如果您的代码涉及HWNDs 如果你查看 Windows 头文件 它是通过宏定义的 struct HWND int unus
  • 通过 RESTful CXF 使用多部分/表单数据

    我一直在一个 Web 服务中工作 该服务使用 Apache CXF 与 Jackson 结合使用和生成 JSON 文件 但是 该服务的方法之一应该能够保存从移动应用程序上传的图像 该应用程序向我的网络服务发出多部分 表单数据 POST 请求