- 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
对象:- A
SOAPPart
对象 - A
SOAPEnvelope
对象 - A
SOAPBody
对象 - 一个
SOAPHeader
对象
SOAPHeader
对象和SOAPBody
对象中的附加条目的消息。 新的SOAPMessage
对象的内容取决于两个MessageFactory
方法中的哪一个用于创建它。-
createMessage()
这是客户端通常用于创建请求消息的方法。 -
createMessage(MimeHeaders, java.io.InputStream)
-消息具有从所述内容InputStream
从对象和标题MimeHeaders
对象
该方法可以由服务实现在内部使用来创建一个响应请求的消息。
- 从以下版本开始:
- 1.6
- A
-
-
构造方法摘要
构造方法 Constructor 描述 MessageFactory()
-
方法摘要
所有方法 静态方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 abstract SOAPMessage
createMessage()
创建一个新SOAPMessage
用默认对象SOAPPart
,SOAPEnvelope
,SOAPBody
,并SOAPHeader
对象。abstract SOAPMessage
createMessage(MimeHeaders headers, InputStream in)
将给定的InputStream
对象的内容内化为一个新的SOAPMessage
对象,并返回SOAPMessage
对象。static MessageFactory
newInstance()
创建一个新的MessageFactory
对象,该对象是默认实现(SOAP 1.1)的一个实例。static MessageFactory
newInstance(String protocol)
创建一个新的MessageFactory
对象,该对象是指定实现的实例。
-
-
-
方法详细信息
-
newInstance
public static MessageFactory newInstance() throws SOAPException
创建一个新的MessageFactory
对象,该对象是默认实现(SOAP 1.1)的一个实例。 此方法使用javax.xml.soap
中指定的查找过程来定位并加载MessageFactory
类。- 结果
-
一个新的实例
MessageFactory
- 异常
-
SOAPException
- 如果在创建MessageFactory
的默认实现时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_PROTOCOL
,DEFAULT_SOAP_PROTOCOL
(其是相同的)SOAP_1_1_PROTOCOL
,或SOAP_1_2_PROTOCOL
。 - 结果
-
一个新的实例
MessageFactory
- 异常
-
SOAPException
- 创建MessageFactory
的指定实现是否有错误。 - 从以下版本开始:
- 1.6,SAAJ 1.3
- 另请参见:
-
SAAJMetaFactory
-
createMessage
public abstract SOAPMessage createMessage() throws SOAPException
创建一个新SOAPMessage
用默认对象SOAPPart
,SOAPEnvelope
,SOAPBody
,并SOAPHeader
对象。 特定于个人资料的消息工厂可以选择使用个人资料标题预填充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
要求在headers
参数中存在一个或多个MIME标题,并且它们丢失。MessageFactory
实现为SOAP_1_1_PROTOCOL
或者SOAP_1_2_PROTOCOL
不得抛出IllegalArgumentException
这个原因。
-
-