JavaTM Platform
Standard Ed. 6

javax.xml.soap
类 MessageFactory

java.lang.Object
  继承者 javax.xml.soap.MessageFactory

public abstract class MessageFactory
     
extends Object

创建 SOAPMessage 对象的工厂。

SAAJ 客户端可以使用方法 newInstance 创建 MessageFactory 对象,如以下代码行所示。

MessageFactory mf = MessageFactory.newInstance();
MessageFactory mf12 = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL);
 

默认情况下,所有 MessageFactory 对象(无论它们是如何创建的)都将生成具有以下元素的 SOAPMessage 对象:

在某些情况下,可以获取特殊的 MessageFactory 对象来生成用 SOAPHeader 对象和 SOAPBody 对象中的附加条目预填充的消息。新的 SOAPMessage 对象的内容取决于使用两种 MessageFactory 方法中的哪一种创建该对象。


构造方法摘要
MessageFactory()
           
 
方法摘要
abstract  SOAPMessage createMessage()
          使用默认的 SOAPPartSOAPEnvelopeSOAPBodySOAPHeader 对象创建新的 SOAPMessage 对象。
abstract  SOAPMessage createMessage(MimeHeaders headers, InputStream in)
          将给定 InputStream 对象的内容内部化到新的 SOAPMessage 对象,并返回该 SOAPMessage 对象。
static MessageFactory newInstance()
          创建新的 MessageFactory 对象,该对象是默认实现 (SOAP 1.1) 的实例。
static MessageFactory newInstance(String protocol)
          创建新的 MessageFactory 对象,该对象是指定实现的实例。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

MessageFactory

public MessageFactory()
方法详细信息

newInstance

public static MessageFactory newInstance()
                                  throws SOAPException
创建新的 MessageFactory 对象,该对象是默认实现 (SOAP 1.1) 的实例。 此方法使用以下查找过程顺序来确定要加载的 MessageFactory 实现类:

返回:
新的 MessageFactory 实例
抛出:
SOAPException - 如果创建默认的 MessageFactory 实现时存在错误。
另请参见:
SAAJMetaFactory

newInstance

public static MessageFactory newInstance(String protocol)
                                  throws SOAPException
创建新的 MessageFactory 对象,该对象是指定实现的实例。可以是动态消息工厂、SOAP 1.1 消息工厂或 SOAP 1.2 消息工厂。动态消息工厂根据作为 createMessage 方法参数指定的 MIME 头创建消息。此方法使用 SAAJMetaFactory 来定位实现类并创建 MessageFactory 实例。

参数:
protocol - 字符串常量,表示指定消息工厂实现的类。可以是 DYNAMIC_SOAP_PROTOCOLDEFAULT_SOAP_PROTOCOL(等同于 SOAP_1_1_PROTOCOL)或 SOAP_1_2_PROTOCOL
返回:
新的 MessageFactory 实例
抛出:
SOAPException - 如果创建指定的 MessageFactory 实例时存在错误。
从以下版本开始:
SAAJ 1.3
另请参见:
SAAJMetaFactory

createMessage

public abstract SOAPMessage createMessage()
                                   throws SOAPException
使用默认的 SOAPPartSOAPEnvelopeSOAPBodySOAPHeader 对象创建新的 SOAPMessage 对象。特定于配置文件的消息工厂可以选择用特定于配置文件的头预填充 SOAPMessage 对象。

可以向此消息的 SOAPPart 对象添加内容,如果一个只包含 SOAP 部分的消息便已足够,则可以按“原样”发送消息。否则,SOAPMessage 对象需要创建一个或多个 AttachmentPart 对象并将其添加到自身。任何非 XML 格式的内容必须在 AttachmentPart 对象中。

返回:
一个新的 SOAPMessage 对象
抛出:
SOAPException - 如果发生 SOAP 错误
UnsupportedOperationException - 如果此 MessageFactory 实例的协议是 DYNAMIC_SOAP_PROTOCOL

createMessage

public abstract SOAPMessage createMessage(MimeHeaders headers,
                                          InputStream in)
                                   throws IOException,
                                          SOAPException
将给定 InputStream 对象的内容内部化到新的 SOAPMessage 对象,并返回该 SOAPMessage 对象。

参数:
in - 包含消息数据的 InputStream 对象
headers - 用于创建消息的特定于传输的头,使用与传输无关的方式传递给消息
返回:
一个新的 SOAPMessage 对象,包含给定 InputStream 对象的数据
抛出:
IOException - 如果读取输入流的数据时存在错误
SOAPException - 消息无效时抛出
IllegalArgumentException - 如果 MessageFactory 需要一个或多个 MIME 头存在于 headers 参数中,但是它们丢失了。 SOAP_1_1_PROTOCOLSOAP_1_2_PROTOCOLMessageFactory 实现不得因此抛出 IllegalArgumentException

JavaTM Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策