java.lang.Object javax.xml.soap.MessageFactory
public abstract class MessageFactory
创建 SOAPMessage
对象的工厂。
SAAJ 客户端可以使用方法 newInstance
创建 MessageFactory
对象,如以下代码行所示。
MessageFactory mf = MessageFactory.newInstance(); MessageFactory mf12 = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL);
默认情况下,所有 MessageFactory
对象(无论它们是如何创建的)都将生成具有以下元素的 SOAPMessage
对象:
SOAPPart
对象 SOAPEnvelope
对象 SOAPBody
对象 SOAPHeader
对象 SOAPHeader
对象和
SOAPBody
对象中的附加条目预填充的消息。新的
SOAPMessage
对象的内容取决于使用两种
MessageFactory
方法中的哪一种创建该对象。
createMessage()
createMessage(MimeHeaders, java.io.InputStream)
-- 消息的内容取自 InputStream
对象,头取自 MimeHeaders
对象。
构造方法摘要 | |
---|---|
MessageFactory() |
方法摘要 | |
---|---|
abstract SOAPMessage |
createMessage() 使用默认的 SOAPPart 、SOAPEnvelope 、SOAPBody 和 SOAPHeader 对象创建新的 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 |
构造方法详细信息 |
---|
public MessageFactory()
方法详细信息 |
---|
public static MessageFactory newInstance() throws SOAPException
MessageFactory
对象,该对象是默认实现 (SOAP 1.1) 的实例。 此方法使用以下查找过程顺序来确定要加载的 MessageFactory 实现类:
MessageFactory
实例
SOAPException
- 如果创建默认的
MessageFactory
实现时存在错误。
SAAJMetaFactory
public static MessageFactory newInstance(String protocol) throws SOAPException
MessageFactory
对象,该对象是指定实现的实例。可以是动态消息工厂、SOAP 1.1 消息工厂或 SOAP 1.2 消息工厂。动态消息工厂根据作为
createMessage
方法参数指定的 MIME 头创建消息。此方法使用 SAAJMetaFactory 来定位实现类并创建 MessageFactory 实例。
protocol
- 字符串常量,表示指定消息工厂实现的类。可以是
DYNAMIC_SOAP_PROTOCOL
、
DEFAULT_SOAP_PROTOCOL
(等同于
SOAP_1_1_PROTOCOL
)或
SOAP_1_2_PROTOCOL
。
MessageFactory
实例
SOAPException
- 如果创建指定的
MessageFactory
实例时存在错误。
SAAJMetaFactory
public abstract SOAPMessage createMessage() throws SOAPException
SOAPPart
、
SOAPEnvelope
、
SOAPBody
和
SOAPHeader
对象创建新的
SOAPMessage
对象。特定于配置文件的消息工厂可以选择用特定于配置文件的头预填充
SOAPMessage
对象。
可以向此消息的 SOAPPart
对象添加内容,如果一个只包含 SOAP 部分的消息便已足够,则可以按“原样”发送消息。否则,SOAPMessage
对象需要创建一个或多个 AttachmentPart
对象并将其添加到自身。任何非 XML 格式的内容必须在 AttachmentPart
对象中。
SOAPMessage
对象
SOAPException
- 如果发生 SOAP 错误
UnsupportedOperationException
- 如果此
MessageFactory
实例的协议是
DYNAMIC_SOAP_PROTOCOL
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_PROTOCOL
或
SOAP_1_2_PROTOCOL
的
MessageFactory
实现不得因此抛出
IllegalArgumentException
。