Module  java.xml.ws
软件包  javax.xml.soap

Class SOAPPart

  • All Implemented Interfaces:
    NodeDocumentNode


    public abstract class SOAPPart
    extends Object
    implements Document, Node
    用于SOAPMessage对象的SOAP特定部分的SOAPMessage 所有消息都需要具有SOAP部分,因此当创建一个SOAPMessage对象时,它将自动具有一个SOAPPart对象。

    一个SOAPPart对象是MIME部分,并具有MIME标头Content-Id,Content-Location和Content-Type。 因为Content-Type的值必须是“text / xml”,所以SOAPPart对象自动具有Content-Type的MIME标题,其值设置为“text / xml”。 该值必须为“text / xml”,因为消息的SOAP部分中的内容必须是XML格式。 不是“text / xml”类型的内容必须在AttachmentPart对象中,而不是在SOAPPart对象中。

    发送消息时,其SOAP部分必须将MIME头的Content-Type设置为“text / xml”。 或者从另一角度看,接收的任何消息的SOAP部分必须具有值为“text / xml”的MIME头Content-Type。

    客户端可以通过调用方法SOAPMessage.getSOAPPart访问SOAPPart对象的SOAPMessage对象。 以下代码行(其中message是一个SOAPMessage对象)检索消息的SOAP部分。

       SOAPPart soapPart = message.getSOAPPart();  

    一个SOAPPart对象包含一个SOAPEnvelope对象,它又包含一个SOAPBody对象和一个SOAPHeader对象。 SOAPPart方法getEnvelope可用于检索SOAPEnvelope对象。

    从以下版本开始:
    1.6
    • 构造方法详细信息

      • SOAPPart

        public SOAPPart​()
    • 方法详细信息

      • getEnvelope

        public abstract SOAPEnvelope getEnvelope​()
                                          throws SOAPException
        获取SOAPEnvelope与此相关联的对象SOAPPart对象。 一旦获得了SOAP信封,就可以使用它来获取它的内容。
        结果
        SOAPEnvelope对象为此 SOAPPart对象
        异常
        SOAPException - 如果存在SOAP错误
      • getContentId

        public String getContentId​()
        检索名称为“Content-Id”的MIME标头的值。
        结果
        一个 String给出名为“Content-Id”的MIME头的值
        另请参见:
        setContentId(java.lang.String)
      • getContentLocation

        public String getContentLocation​()
        检索名称为“Content-Location”的MIME标头的值。
        结果
        一个 String给出MIME头的值,名称为“Content-Location”
        另请参见:
        setContentLocation(java.lang.String)
      • setContentId

        public void setContentId​(String contentId)
        将名为“Content-Id”的MIME标头的值设置为给定的 String
        参数
        contentId - 一个 String给出MIME头“Content-Id”的值
        异常
        IllegalArgumentException - 如果设置内容ID有问题
        另请参见:
        getContentId()
      • setContentLocation

        public void setContentLocation​(String contentLocation)
        将MIME标题“Content-Location”的值设置为给定的 String
        参数
        contentLocation - 一个 String给出了MIME头的值“Content-Location”
        异常
        IllegalArgumentException - 如果设置内容位置有问题。
        另请参见:
        getContentLocation()
      • removeMimeHeader

        public abstract void removeMimeHeader​(String header)
        删除与给定名称相匹配的所有MIME标头。
        参数
        header - 一个 String给出要删除的MIME标题的名称
      • removeAllMimeHeaders

        public abstract void removeAllMimeHeaders​()
        删除所有 MimeHeader此对象 SOAPEnvelope对象。
      • getMimeHeader

        public abstract String[] getMimeHeader​(String name)
        获取的所有值 MimeHeader在这个对象 SOAPPart对象由给定的标识 String
        参数
        name - 标题的名称; 示例:“Content-Type”
        结果
        一个 String数组给出指定头的所有值
        另请参见:
        setMimeHeader(java.lang.String, java.lang.String)
      • setMimeHeader

        public abstract void setMimeHeader​(String name,
                                           String value)
        更改与给定标题名称匹配的第一个标题条目,以使其值为给定值,如果没有现有标题匹配,则添加具有给定名称和值的新标题。 如果存在匹配项,则此方法将清除匹配并设置给定值的第一个标头的所有现有值。 如果多个头部具有给定的名称,则此方法将在第一个头部之后删除所有匹配的头部。

        请注意,RFC822头文件只能包含US-ASCII字符。

        参数
        name - 一个 String给出要搜索的标题名称
        value - 一个String给出要设置的值。 该值将替代当前匹配的第一个标题的当前值(如果有的话)。 如果没有匹配,该值将是新的MimeHeader对象的值。
        异常
        IllegalArgumentException - 如果指定的MIME标题名或值有问题
        另请参见:
        getMimeHeader(java.lang.String)
      • addMimeHeader

        public abstract void addMimeHeader​(String name,
                                           String value)
        创建MimeHeader具有指定名称和值对象,并将其添加到这个SOAPPart对象。 如果具有指定名称的MimeHeader已经存在,则此方法将指定的值添加到已存在的值。

        请注意,RFC822头文件只能包含US-ASCII字符。

        参数
        name - 一个 String给出标题名称
        value - 一个 String给出要设置或添加的值
        异常
        IllegalArgumentException - 如果指定的mime头名或值有问题
      • getAllMimeHeaders

        public abstract Iterator<MimeHeader> getAllMimeHeaders​()
        检索这一切的头 SOAPPart对象为在一个迭代 MimeHeader对象。
        结果
        一个 Iterator对象所有MIME头的这个 SOAPPart对象
      • getMatchingMimeHeaders

        public abstract Iterator<MimeHeader> getMatchingMimeHeaders​(String[] names)
        检索与给定数组中的名称相匹配的所有 MimeHeader对象。
        参数
        names - 具有要返回的MIME标题的名称的 String数组
        结果
        与给定数组中的一个名称匹配的所有MIME标头都作为一个 Iterator对象返回
      • getNonMatchingMimeHeaders

        public abstract Iterator<MimeHeader> getNonMatchingMimeHeaders​(String[] names)
        检索名称与给定数组中的名称不匹配的所有 MimeHeader对象。
        参数
        names - 一个 String数组,其MIME标题的名称不被返回
        结果
        SOAPPart对象中的所有MIME标头,除了与给定数组中的一个名称相匹配的对象。 不匹配的MIME标题作为Iterator对象返回。
      • setContent

        public abstract void setContent​(Source source)
                                 throws SOAPException
        使用给定的Source对象的数据设置SOAPEnvelope对象的内容。 Source必须包含有效的SOAP文档。
        参数
        source - 要设置的数据的 javax.xml.transform.Source对象
        异常
        SOAPException - 如果设置源有问题
        另请参见:
        getContent()