0 Replies Latest reply on Feb 23, 2007 10:37 AM by pgrillo

    ejb-all.jar and XMLInputFactory

    pgrillo

      We use jboss-ejb3-all.jar along with Seam and Tomcat. I am now integrating some of our own technology into it. We use Woodstox XML processor along with the stax api.

      wstx-asl-2.9.3.jar and stax-api-1.0.1.jar

      Now jboss-ejb3-all.jar has an implementation of javax.xml.stream.XMLInputFactory.

      However, when i issue a

      XMLInputFactory f = XMLInputFactory.newInstance();

      which uses the version inside of jboss-ejb3-all.jar it insists on trying to use "com.bea.xml.stream.MXParserFactory" as the implementation and does not pick up Woodstox. I have no com.bea.xml.stream.MXParserFactory so i can't move on, wish to use Woodstox.

      I generally understood that the rules for determining what to use is below, and works perfectly with stax-api.jar since the woodstox jar file provides the appropriate files in META-INF/services.

      Could somebody please tell me how i can direct XMLInputFactory in jboss-ejb3-all.jar to pick up my XMLInputReader properly? Other than using a system property? I really don't wish to manage which version of this class gets picked up first to ensure that our app works, and i don't want to break apart jboss-ejb-all.jar.




      Deriving from JAXP, the XMLInputFactory.newInstance() method determines the specific XMLInputFactory implementation class to load by using the following lookup procedure:

      1. Use the javax.xml.stream.XMLInputFactory system property.
      2. Use the lib/xml.stream.properties file in the JRE directory.
      3. Use the Services API, if available, to determine the classname by looking in the META-INF/services/javax.xml.stream.XMLInputFactory files in jars available to the JRE.
      4. Use the platform default XMLInputFactory instance.