【问题标题】:Content type for multi-part request in soap web services肥皂网络服务中多部分请求的内容类型
【发布时间】:2014-05-11 16:50:11
【问题描述】:

我正在编写一个 Java 客户端来调用 SOAP Web 服务。它接受一个文件作为附件,所以在 java 中,我需要将内容类型声明为 multipart。我正在使用apache http 库来编写 Java 客户端。

我在Java中指定它如下

httppost.setHeader("Content-Type", "multipart/related");

但我收到以下错误

Couldn't create SOAP message due to exception: javax.xml.ws.WebServiceException: MIME boundary parameter not foundmultipart/related

请告诉我如何解决此错误。在 Java 中指定的内容类型应该是什么。

当我将其指定为

httppost.setHeader( "Content-Type", "text/xml; charset=utf-8" ); 

再次,我得到了以下异常

 Caused by: com.sun.xml.ws.streaming.XMLStreamReaderException: XML reader error: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character '-' (code 45) in prolog; expected '<'

我应该继续哪个以及如何解决相应的异常?

【问题讨论】:

    标签: java web-services soap content-type mime


    【解决方案1】:

    我假设您正在尝试使用 MTOM+XOP?

    第一个错误很明显:你没有边界。多部分不仅仅是一种内容类型,它要求您使用必须在标题中声明的边界来标记不同的部分,并要求换行符等位于正确的位置。

    其次,如果您要这样做,您不能只将文件发送到 SOAP 端点,您需要在第一部分有一个肥皂体,它在第二部分引用该文件。

    【讨论】:

    • 我正在使用 apache http 库。你能告诉我怎么做吗
    • 要进行有效的 MTOM+XOP 交互,除了 multipart 之外,您还需要了解很多,请先阅读。
    • 我没有使用 MTOM/XOP。已经写了一个服务。我只需要使用 Java 代码和 apache http 库来调用它。我目前卡在文件附件部分。可能是我错误地设置了内容类型或与之相关的任何内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-29
    • 2017-01-16
    • 2017-12-10
    • 1970-01-01
    相关资源
    最近更新 更多