alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

Axis 2 example source code file (MessageFactoryImpl.java)

This example Axis 2 source code file (MessageFactoryImpl.java) is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Java - Axis 2 tags/keywords

dynamic_soap_protocol, inputstream, io, ioexception, messagefactory, messagefactoryimpl, soapenvelopeimpl, soapexception, soapexception, soapmessage, soapmessage, soapmessageimpl, soapmessageimpl, string, unsupportedoperationexception

The Axis 2 MessageFactoryImpl.java source code

/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements. See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership. The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License. You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied. See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */
package org.apache.axis2.saaj;

import org.apache.axiom.soap.impl.dom.soap11.SOAP11Factory;
import org.apache.axiom.soap.impl.dom.soap12.SOAP12Factory;

import javax.xml.soap.MessageFactory;
import javax.xml.soap.MimeHeaders;
import javax.xml.soap.SOAPConstants;
import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPMessage;
import java.io.IOException;
import java.io.InputStream;

/**
 * <P>A factory for creating SOAPMessage objects.

* <p/> * <P>A JAXM client performs the following steps to create a message.

* <p/> * <UL>
  • Creates a MessageFactory object from a ProviderConnection * object (<CODE>con in the following line of code). The String passed to the * <CODE>createMessageFactory method is the name of of a messaging profile, which must be the * URL for the schema. <PRE> MessageFactory mf = con.createMessageFactory(schemaURL);
  • * <p/> * <LI> Calls the method createMessage on the MessageFactory object. All * messages produced by this <CODE>MessageFactory object will have the header information * appropriate for the messaging profile that was specified when the <CODE>MessageFactory * object was created. <PRE> SOAPMessage m = mf.createMessage(); It is also * possible to create a <CODE>MessageFactory object using the method * <CODE>newInstance, as shown in the following line of code.
     MessageFactory mf =
     * MessageFactory.newInstance(); </PRE> A standalone client (a client that is not running in a
     * container) can use the <CODE>newInstance method to create a MessageFactory
     * object.
     * <p/>
     * <P>All MessageFactory objects, regardless of how they are created, will produce
     * <CODE>SOAPMessage objects that have the following elements by default:

    * <p/> * <UL>
  • A SOAPPart object
  • * <p/> * <LI>A SOAPEnvelope object * <p/> * <LI>A SOAPBody object * <p/> * <LI>A SOAPHeader object If a MessageFactory object was * created using a <CODE>ProviderConnection object, which means that it was initialized with * a specified profile, it will produce messages that also come prepopulated with additional entries * in the <CODE>SOAPHeader object and the SOAPBody object. The content of a new * <CODE>SOAPMessage object depends on which of the two MessageFactory methods * is used to create it. * <p/> * <UL>
  • createMessage() -- message has no content
    This is the method clients * would normally use to create a request message.</LI> * <p/> * <LI>createMessage(MimeHeaders, java.io.InputStream) -- message has content from the * <CODE>InputStream object and headers from the MimeHeaders object
    This * method can be used internally by a service implementation to create a message that is a response * to a request.</LI> */ public class MessageFactoryImpl extends MessageFactory { protected String soapVersion = SOAPConstants.SOAP_1_1_PROTOCOL; /** * Creates a new <CODE>SOAPMessage object with the default SOAPPart, * <CODE>SOAPEnvelope, SOAPBody, and SOAPHeader objects. * Profile-specific message factories can choose to prepopulate the <CODE>SOAPMessage * object with profile-specific headers. * <p/> * <P>Content can be added to this message's SOAPPart object, and the message can * be sent "as is" when a message containing only a SOAP part is sufficient. Otherwise, the * <CODE>SOAPMessage object needs to create one or more AttachmentPart * objects and add them to itself. Any content that is not in XML format must be in an * <CODE>AttachmentPart object.

    * * @return a new <CODE>SOAPMessage object * @throws SOAPException if a SOAP error occurs java.lang.UnsupportedOperationException - if the * protocol of this MessageFactory instance is DYNAMIC_SOAP_PROTOCOL */ public SOAPMessage createMessage() throws SOAPException { SOAPEnvelopeImpl soapEnvelope; if (soapVersion.equals(SOAPConstants.SOAP_1_2_PROTOCOL)) { soapEnvelope = new SOAPEnvelopeImpl((org.apache.axiom.soap.impl.dom.SOAPEnvelopeImpl) new SOAP12Factory().getDefaultEnvelope()); } else if (soapVersion.equals(SOAPConstants.DYNAMIC_SOAP_PROTOCOL)) { throw new UnsupportedOperationException("createMessage() is not supported for " + "DYNAMIC_SOAP_PROTOCOL"); } else { //SOAP 1.1 soapEnvelope = new SOAPEnvelopeImpl((org.apache.axiom.soap.impl.dom.SOAPEnvelopeImpl) new SOAP11Factory().getDefaultEnvelope()); } SOAPMessageImpl soapMessage = new SOAPMessageImpl(soapEnvelope); soapMessage.setSaveRequired(); return soapMessage; } /** * Internalizes the contents of the given <CODE> InputStream object into a new * <CODE>SOAPMessage object and returns the SOAPMessage object. * * @param mimeheaders the transport-specific headers passed to the message in a * transport-independent fashion for creation of the message * @param inputstream the <CODE>InputStream object that contains the data for a message * @return a new <CODE>SOAPMessage object containing the data from the given * <CODE>InputStream object * @throws IOException if there is a problem in reading data from the input stream * @throws SOAPException if the message is invalid */ public SOAPMessage createMessage(MimeHeaders mimeheaders, InputStream inputstream) throws IOException, SOAPException { SOAPMessageImpl soapMessage = new SOAPMessageImpl(inputstream, mimeheaders); soapMessage.setSaveRequired(); return soapMessage; } public void setSOAPVersion(String soapVersion) { this.soapVersion = soapVersion; } }
  • Other Axis 2 examples (source code examples)

    Here is a short list of links related to this Axis 2 MessageFactoryImpl.java source code file:

    ... this post is sponsored by my books ...

    #1 New Release!

    FP Best Seller

     

    new blog posts

     

    Copyright 1998-2021 Alvin Alexander, alvinalexander.com
    All Rights Reserved.

    A percentage of advertising revenue from
    pages under the /java/jwarehouse URI on this website is
    paid back to open source projects.