Класс MessageFactory
- java.lang.Object
-
- javax.xml.soap.MessageFactory
public abstract class MessageFactory extends Object
Фабрика для создания объектов SOAPMessage.
Клиент SAAJ может создать объект MessageFactory с помощью метода newInstance, как показано в следующих строках кода.
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() Создаёт новый объект |
abstract SOAPMessage |
createMessage(MimeHeaders headers,
InputStream in) Интернализует содержимое данного объекта |
static MessageFactory |
newInstance() Создаёт новый объект |
static MessageFactory |
newInstance(String protocol) Создаёт новый объект |
Методы, унаследованные от класса 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 для загрузки:
- Использовать системную переменную javax.xml.soap.MessageFactory.
- Использовать файл свойств "lib/jaxm.properties" в каталоге JRE. Этот конфигурационный файл имеет стандартный формат java.util.Properties и содержит полное имя класса реализации с ключом, соответствующим системной переменной, определённой выше.
- Использовать API сервисов (как описано в спецификации JAR), если оно доступно, для определения имени класса. API сервисов будет искать имя класса в файле META-INF/services/javax.xml.soap.MessageFactory в доступных во время выполнения JAR-файлах.
- Использовать экземпляр SAAJMetaFactory для поиска класса реализации MessageFactory.
- Возвращает:
- новый экземпляр
MessageFactory - Изначает:
-
SOAPException- если произошла ошибка при создании реализации по умолчаниюMessageFactory. - См. также:
SAAJMetaFactory
newInstance
public static MessageFactory newInstance(String protocol)
throws SOAPException Создаёт новый объект MessageFactory, который является экземпляром указанной реализации. Может быть динамической фабрикой сообщений, фабрикой сообщений SOAP 1.1 или фабрикой сообщений SOAP 1.2. Динамическая фабрика сообщений создаёт сообщения на основе MIME-заголовков, указанных в качестве аргументов методу createMessage . Этот метод использует SAAJMetaFactory для поиска класса реализации и создания экземпляра MessageFactory.
- Параметры:
-
protocol- строковая константа, представляющая класс указанной реализации фабрики сообщений. Может быть либоDYNAMIC_SOAP_PROTOCOL, либоDEFAULT_SOAP_PROTOCOL(что то же самое, что)SOAP_1_1_PROTOCOL, илиSOAP_1_2_PROTOCOL. - Возвращает:
- новый экземпляр
MessageFactory - Изначает:
-
SOAPException- если произошла ошибка при создании указанной реализацииMessageFactory. - С тех пор:
- 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требует наличия одного или нескольких MIME-заголовков в параметреheadersи они отсутствуют. РеализацииMessageFactoryдляSOAP_1_1_PROTOCOLилиSOAP_1_2_PROTOCOLне должны выбрасыватьIllegalArgumentExceptionпо этой причине.
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.