code: static synchronized SAAJMetaFactory getInstance() throws SOAPException {
          if (instance == null) {
              try {
                  instance =
                      (SAAJMetaFactory) FactoryFinder.find(
                          META_FACTORY_CLASS_PROPERTY,
                          DEFAULT_META_FACTORY_CLASS);
              } catch (Exception e) {
                  throw new SOAPException(
                      "Unable to create SAAJ meta-factory" + e.getMessage());
              }
          }
  
          return instance;
      }
docs: Creates a new instance of a concrete <code>SAAJMetaFactory</code> object.
  The SAAJMetaFactory is an SPI, it pulls the creation of the other factories together into a
  single place. Changing out the SAAJMetaFactory has the effect of changing out the entire SAAJ
  implementation. Service providers provide the name of their <code>SAAJMetaFactory</code>
  implementation.
  
  This method uses the following ordered lookup procedure to determine the SAAJMetaFactory implementation class to load:
  <UL>
  <LI> Use the javax.xml.soap.MetaFactory system property.
  <LI> Use the properties file "lib/jaxm.properties" in the JRE directory. This configuration file is in standard
  java.util.Properties format and contains the fully qualified name of the implementation class with the key being the
  system property defined above.
  <LI> Use the Services API (as detailed in the JAR specification), if available, to determine the classname. The Services API
  will look for a classname in the file META-INF/services/javax.xml.soap.MetaFactory in jars available to the runtime.
  <LI> Default to com.sun.xml.messaging.saaj.soap.SAAJMetaFactoryImpl.
  </UL>
  
  @return a concrete <code>SAAJMetaFactory</code> object
  @exception SOAPException if there is an error in creating the <code>SAAJMetaFactory</code>