当前位置: 首页 > 知识库问答 >
问题:

禁用非MTOM SOAP消息或在CXF中限制其大小

宇文迪
2023-03-14

我在CXF(或者一般的SOAP)中遇到了这个问题。当我在服务器端和客户端同时启用MTOM请求时,我的应用程序工作得很好,Java堆大小不会成倍增长。但是,如果某些客户机决定不使用MTOM发送大的(我的意思是500MB+附件作为B64编码格式)消息,就会出现问题,这会导致Java堆大小成倍增长,当然也会发生OutOfMemoryException(OutOfMemoryException)。

那么我如何才能完全禁用非MTOM消息并强制客户端使用它。有没有用CXF或其他方法的解决方案...我的意思是检测非MTOM消息并立即抛出Fault(而不处理整个XML消息)。或者是否有任何解决方案来限制非MTOM消息大小,比如如果消息是~30MB允许它,否则抛出错误。

这是一个我思考了很久的问题,也找了很多关于它的东西,不幸的是,没有找到任何解决方法。

我不想因为合同而放弃肥皂而坚持Rest。但我想如果我找不到任何解决办法那将是我唯一的机会。

共有1个答案

归泽宇
2023-03-14

我发现的最好的解决方案写在http://cxf.apache.org/docs/securing-cxf-services.html中

我必须启用org.apache.cxf.stax.MaxxmlCharacters属性,并将其值设置为元素的敏感数字...它有一个模棱两可的描述,你必须使用不安全的解析器来做这件事,但这是不正确的。

 类似资料:
  • 在Log4J2中,当大小超过指定阈值时,我希望修剪写入控制台附加器的消息的结尾。 知道吗?

  • 问题内容: 我有一个在独立模式下运行的Flask服务器(使用)。但是,我不需要控制台中的任何消息,例如 如何禁用详细模式? 问题答案: 你可以将Werkzeug记录器的设置级别设置为ERROR,在这种情况下,仅记录错误:

  • 我想通过Apache Camel调用Web服务,数据格式是MESSAGE。我想构造以下SOAP消息: 有人能帮我介绍一些代码片段或示例来说明如何创建此SOAP消息吗?

  • 我的Kafka消费者必须倾听多个主题。每个主题都定义了一个优先级,比如高、低和中。 消费者服务必须以这样的方式配置,例如,它有30个执行器用于处理高主题的消息,5个执行器用于处理低主题和中主题的每个消息。 如果执行程序被占用并运行当前任务,是否有方法配置消费者停止消费来自相应主题的消息?

  • 设置节点允许的消息大小上限。大于此限制的接收和发送消息都将被拒绝。 Whisper中的消息大小不能超过底层P2P协议的10Mb上限。 调用: web3.shh.setMaxMessageSize(size, [callback]) 参数: size:Number - 字节为单位的消息大小 callback:Function - 可选的回调函数,其第一个参数为错误对象,第二个参数为返回结果 返回值

  • 问题内容: 有人知道如何在Ubuntu 12.10下禁用或更改CUDA内核的超时限制吗?(在Windows的当前版本中,可以在注册表中设置超时限制。) 也请告诉我Ubuntu是否不可能做到这一点。 我上一次搜索的唯一结果如下: 没有图形显示的情况下运行CUDA内核的程序已连接到GPU 将内核分成较小的内核,以避免超过时间限制 这两种解决方案都不适合我,因为我需要为应用程序提供图形化显示,并且在内核