- 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 SOAPMessagecreateMessage()创建一个新SOAPMessage用默认对象SOAPPart,SOAPEnvelope,SOAPBody,并SOAPHeader对象。abstract SOAPMessagecreateMessage(MimeHeaders headers, InputStream in)将给定的InputStream对象的内容内化为一个新的SOAPMessage对象,并返回SOAPMessage对象。static MessageFactorynewInstance()创建一个新的MessageFactory对象,该对象是默认实现(SOAP 1.1)的一个实例。static MessageFactorynewInstance(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这个原因。
-
-