【问题标题】:Try to create BLOB from HttpServletRequest Body尝试从 HttpServletRequest 正文创建 BLOB
【发布时间】:2014-03-29 05:32:47
【问题描述】:

我尝试在过滤器中从 HttpServletRequest 的正文创建一个 BLOB。
我是这样做的:

Blob blob=Hibernate.createBlob(request.getInputStream());

但此方法已被弃用。 我还能做什么?

【问题讨论】:

  • 你可以试试这个docs.jboss.org/hibernate/core/3.6/javadocs/org/hibernate/… - 问题是如果你没有 blob 大小(在这种情况下,似乎有些 DB 使用 size = -1)
  • @Leo DB 是 oracle,我通过 request.getContentLength() 尝试第二个参数。它也已被弃用。
  • 当您使用 http 提供某些内容时,您可以或不能声明您提供的内容的大小。当然,如果你这样做总是好的,否则你会得到那些永无止境的下载进度条:-)而且很多时候都是这种情况,这就是我认为这种方法已被弃用的原因。显然,问题是您必须先检索,然后检查大小,然后在本地再次输入:-(

标签: hibernate jakarta-ee servlet-filters


【解决方案1】:

我试试这个:

byte[] b=IOUtils.toByteArray(request.getInputStream());
blob=Hibernate.createBlob(b, LogDAO.getInstance().getSession());

它可以工作......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-11
    • 1970-01-01
    • 1970-01-01
    • 2018-05-29
    • 1970-01-01
    • 2011-12-27
    相关资源
    最近更新 更多