public abstract class SOAPMessage extends Object
 SOAPMessage对象由SOAP部分和可选的一个或多个附件部分组成。 SOAPMessage对象的SOAP部分是一个SOAPPart对象,其中包含用于消息路由和标识的信息,可以包含应用程序特定的内容。 消息的SOAP部分中的所有数据必须是XML格式。 
 新的SOAPMessage对象默认包含以下内容: 
SOAPPart对象 SOAPEnvelope对象 SOAPBody对象 SOAPHeader对象 SOAPMessage.getSOAPPart() 。 
       所述SOAPEnvelope对象从检索SOAPPart对象,并且SOAPEnvelope对象用于检索SOAPBody个SOAPHeader对象。 
         SOAPPart sp = message.getSOAPPart();
     SOAPEnvelope se = sp.getEnvelope();
     SOAPBody sb = se.getBody();
     SOAPHeader sh = se.getHeader();  
        除了强制性的SOAPPart对象外, SOAPMessage对象可能包含零个或多个AttachmentPart对象,每个对象包含应用程序特定的数据。 SOAPMessage接口提供了创建AttachmentPart对象以及将其添加到SOAPMessage对象的方法。 收到一个SOAPMessage对象的一方可以通过检索各个附件部分来检查其内容。 
 与SOAP消息的其余部分不同,附件不需要是XML格式,因此可以是从简单文本到图像文件的任何内容。 因此,任何不是XML格式的邮件内容都必须在AttachmentPart对象中。 
 MessageFactory对象可以创建SOAPMessage对象,该对象具有专门针对SAAJ的特定实现或应用程序的行为。 例如, MessageFactory对象可能产生符合特定配置文件(如ebXML)的SOAPMessage对象。 在这种情况下, MessageFactory对象可能会产生使用ebXML头部SOAPMessage对象。 
 为了确保向后的源兼容性,在SAAJ规范版本1.1之后添加到此类的方法都是具体而不是抽象的,它们都具有默认实现。 除非在JavaDocs中为这些方法另有说明,默认实现只需抛出一个UnsupportedOperationException ,并且SAAJ实现代码必须用提供指定行为的方法覆盖它们。 然而,传统的客户端代码没有这种限制,只要没有声明符合规范的某些更新版本,而不是最初编写的。 扩展SOAPMessage类的遗留类可以编译和/或针对后续版本的SAAJ API进行运行,而无需修改。 如果这样的一个类被正确地实现,那么它将继续正确地相对于它被编写的规范版本而正确地运行。 
MessageFactory , AttachmentPart 
       | Modifier and Type | Field and Description | 
|---|---|
| static String | CHARACTER_SET_ENCODING
              指定SOAP消息的字符类型编码。 
             | 
| static String | WRITE_XML_DECLARATION
              指定SOAP消息发送时是否包含XML声明。 
             | 
| Constructor and Description | 
|---|
| SOAPMessage() | 
| Modifier and Type | Method and Description | 
|---|---|
| abstract void | addAttachmentPart(AttachmentPart AttachmentPart)
              将给定的 
              AttachmentPart对象添加到此SOAPMessage对象。 | 
| abstract int | countAttachments()
              获取此消息中附件数量的计数。 
             | 
| abstract AttachmentPart | createAttachmentPart()
              创建一个新的空 
              AttachmentPart对象。 | 
| AttachmentPart | createAttachmentPart(DataHandler dataHandler)
              创建一个 
              AttachmentPart对象,并使用给定的DataHandler对象进行DataHandler。 | 
| AttachmentPart | createAttachmentPart(Object content, String contentType)
              创建一个 
              AttachmentPart对象,并使用指定的内容类型的指定数据填充它。 | 
| abstract AttachmentPart | getAttachment(SOAPElement element)
              返回与 
              AttachmentPart对象,该SOAPElement或null如果不存在此类附件。 | 
| abstract Iterator | getAttachments()
              检索所有 
              AttachmentPart对象是这部分SOAPMessage对象。 | 
| abstract Iterator | getAttachments(MimeHeaders headers)
              检索具有与指定标题匹配的标题条目的所有 
              AttachmentPart对象。 | 
| abstract String | getContentDescription()
              检索此 
              SOAPMessage对象内容的描述。 | 
| abstract MimeHeaders | getMimeHeaders()
              以传输独立的方式返回此 
              SOAPMessage对象的所有传输特定MIME标头。 | 
| Object | getProperty(String property)
              检索指定属性的值。 
             | 
| SOAPBody | getSOAPBody()
              获取此 
              SOAPMessage对象中包含的SOAP Body。 | 
| SOAPHeader | getSOAPHeader()
              获取此 
              SOAPMessage对象中包含的SOAP头。 | 
| abstract SOAPPart | getSOAPPart()
              获取此 
              SOAPMessage对象的SOAP部分。 | 
| abstract void | removeAllAttachments()
              删除所有 
              AttachmentPart已经加入到这一对象SOAPMessage对象。 | 
| abstract void | removeAttachments(MimeHeaders headers)
              删除所有具有与指定标题匹配的标题条目的 
              AttachmentPart对象。 | 
| abstract void | saveChanges()
              更新此 
              SOAPMessage对象,并对其进行了所有更改。 | 
| abstract boolean | saveRequired()
              指示这个 
              SOAPMessage对象是否需要调用方法saveChanges。 | 
| abstract void | setContentDescription(String description)
              使用给定的说明设置此 
              SOAPMessage对象的内容的描述。 | 
| void | setProperty(String property, Object value)
              将指定的值与指定的属性相关联。 
             | 
| abstract void | writeTo(OutputStream out)
              将此 
              SOAPMessage对象写入给定的输出流。 | 
public static final String CHARACTER_SET_ENCODING
SOAPMessage.setProperty , 
            Constant Field Values 
           public static final String WRITE_XML_DECLARATION
SOAPMessage.setProperty , 
            Constant Field Values 
           public abstract void setContentDescription(String description)
SOAPMessage对象的内容的描述。 
          description - 
            String此消息内容的String 
           getContentDescription() 
           public abstract String getContentDescription()
SOAPMessage对象内容的描述。 
          String此消息内容的 
            null或 
            null如果没有设置描述) 
           setContentDescription(java.lang.String) 
           public abstract SOAPPart getSOAPPart()
SOAPMessage对象的SOAP部分。 
            SOAPMessage对象包含一个或多个附件,SOAP部分必须是消息中的第一个MIME主体部分。 
SOAPPart对象为此 
            SOAPMessage对象 
           public SOAPBody getSOAPBody() throws SOAPException
SOAPMessage对象中包含的SOAP Body。 
            
          SOAPBody对象包含的 
            SOAPMessage对象 
           SOAPException - 如果SOAP主体不存在或无法检索 
           public SOAPHeader getSOAPHeader() throws SOAPException
SOAPMessage对象中包含的SOAP头。 
            
          SOAPHeader对象包含此 
            SOAPMessage对象 
           SOAPException - 如果SOAP头不存在或无法检索 
           public abstract void removeAllAttachments()
AttachmentPart已经加入到这一对象SOAPMessage对象。 
           此方法不接触SOAP部分。
public abstract int countAttachments()
AttachmentPart对象的数量是这个 
            SOAPMessage对象的一部分 
           public abstract Iterator getAttachments()
AttachmentPart对象是这部分 
           SOAPMessage对象。 
          public abstract Iterator getAttachments(MimeHeaders headers)
AttachmentPart对象。 
           请注意,返回的附件除了指定的附件之外还可能包含标题。 
          headers - 一个 
            MimeHeaders要搜索的MIME标题的 
            MimeHeaders对象 
           public abstract void removeAttachments(MimeHeaders headers)
AttachmentPart对象。 
           请注意,删除的附件除了指定的附件之外还可能有标题。 
          headers - 一个 
            MimeHeaders要搜索的MIME标题的 
            MimeHeaders对象 
           public abstract AttachmentPart getAttachment(SOAPElement element) throws SOAPException
AttachmentPart对象,该对象与由此SOAPElement或null如果不存在此类附件。 
           引用可以通过进行href属性中所描述SOAP Messages with Attachments经由单个,或Text含有URI作为WS-I附件描述简介1.0模式类型的元素的子节点ref:swaRef 。 
           必须支持这两个机制。 
           通过href引用支持也意味着这个方法也应该是一个元素,它是一个xop:Include元素( XOP )。 
           其他参考机制可以由该标准的各个实现来支持。 
           有关详细信息,请联系您的供应商。 
          element - 包含 
            SOAPElement附件的引用的SOAPElement 
           AttachmentPart或如果没有这样的 
            AttachmentPart存在null或在此 
            SOAPElement没有 
            SOAPElement 。 
           SOAPException - 如果尝试访问附件时出现错误 
           public abstract void addAttachmentPart(AttachmentPart AttachmentPart)
AttachmentPart对象添加到此SOAPMessage对象。 
           必须创建一个AttachmentPart对象,然后才能将其添加到消息中。 
          AttachmentPart -一个 
            AttachmentPart对象,它是成为本的一部分 
            SOAPMessage对象 
           IllegalArgumentException 
           public abstract AttachmentPart createAttachmentPart()
AttachmentPart对象。 
           请注意,必须使用此新的AttachmentPart对象作为参数调用方法addAttachmentPart ,以使其成为此SOAPMessage对象的SOAPMessage 。 
          AttachmentPart对象,可以填充并添加到此 
            SOAPMessage对象 
           public AttachmentPart createAttachmentPart(DataHandler dataHandler)
AttachmentPart对象,并使用给定的 
           DataHandler对象进行 
           DataHandler 。 
          dataHandler -在 
            javax.activation.DataHandler对象将生成此内容 
            SOAPMessage对象 
           AttachmentPart对象,其中包含由给定的 
            DataHandler对象 
            DataHandler数据 
           IllegalArgumentException - 如果指定的 
            DataHandler对象有问题 
           DataHandler , DataContentHandler 
           public abstract MimeHeaders getMimeHeaders()
SOAPMessage对象的所有传输特定MIME标头。 
          MimeHeaders对象的 
            MimeHeader对象 
           public AttachmentPart createAttachmentPart(Object content, String contentType)
AttachmentPart对象,并使用指定的内容类型的指定数据AttachmentPart对象。 
           的类型的Object应该对应于用于给定的值Content-Type 。 
          content -一个 
            Object包含内容为 
            AttachmentPart被创建的对象 
           contentType - 提供内容类型的String对象; 
            示例是“text / xml”,“text / plain”和“image / jpeg” 
           AttachmentPart对象 
           IllegalArgumentException - 如果contentType与内容对象的类型不匹配,或者如果给定的内容对象没有 
            DataContentHandler对象,则可能会抛出 
           DataHandler , DataContentHandler 
           public abstract void saveChanges()
                          throws SOAPException 
          SOAPMessage对象,并对其进行了所有更改。 
           当调用writeTo(OutputStream)时,会自动调用此方法。 
           但是,如果对已收到的消息或已发送的消息进行更改,则需要显式调用方法saveChanges以保存更改。 
           方法saveChanges还生成可以回读的任何更改(例如,支持消息标识的配置文件中的MessageId)。 
           为发送目的创建的消息中的所有MIME标头只有在saveChanges之后saveChanges 。 
            此外,该方法标记了将所有AttachmentPart对象的数据拉入消息的点。 
SOAPExceptionSOAPException 
           public abstract boolean saveRequired()
SOAPMessage对象是否需要调用方法 
           saveChanges 。 
          true如果saveChanges需要调用; 
            false否则。 
           public abstract void writeTo(OutputStream out) throws SOAPException, IOException
SOAPMessage对象写入给定的输出流。 
           外部化格式由具有附件规范的SOAP 1.1定义。 
            如果没有附件,只会写出一个XML流。 对于那些有附件的邮件, writeTo写入MIME编码的字节流。 
请注意,此方法不会写入消息的传输特定MIME标头
out -在 
            OutputStream到该对象 
            SOAPMessage对象将被写入 
           IOException - 如果发生I / O错误 
           SOAPException - 如果在外部化此SOAP消息时出现问题 
           public void setProperty(String property, Object value) throws SOAPException
 有效的产权名称包括WRITE_XML_DECLARATION和CHARACTER_SET_ENCODING 。 所有这些标准SAAJ属性都以“javax.xml.soap”为前缀。 供应商还可以添加实现特定属性。 这些属性必须以供应商唯一的包名称作为前缀。 
 将属性WRITE_XML_DECLARATION设置为"true"将导致在SOAP消息开始时写出XML声明。 默认值“false”禁止此声明。 
 属性CHARACTER_SET_ENCODING默认为值"utf-8" ,这将导致SOAP消息使用UTF-8进行编码。 将CHARACTER_SET_ENCODING设置为"utf-16"导致SOAP消息使用UTF-16进行编码。 
除了UTF-8和UTF-16之外,一些实现可能允许编码。 有关详细信息,请参阅供应商的文档。
property - 指定值 
            property的属性。 
           value - 与指定属性相关联的值 
           SOAPException - 如果属性名称无法识别。 
           public Object getProperty(String property) throws SOAPException
property - 要检索的属性的名称 
           null的值或如果没有此类属性, 
            null 。 
           SOAPException - 如果属性名称不被识别。 
            Submit a bug or feature 
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
 Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.