This jar is definitely in the classpath. I'm using 1.2.16 and have both axiom-api-1.2.16.jar and axiom-impl-1.2.16.jar both in the classpath. This is my attempt to convert a working enterprise app (EAR) from WebSphere 7 to JBoss EAP 7. This app uses spring 4.3.4 with Spring WS Core and XML 2.4.0. Here is the message factory I'm using in spring (which works on WebSphere 7):

But as I understand, Saaj is DOM style and consumes more memory, where as Axiom is SAX style and streams therefore using less memory. So, I would prefer to use Axiom, but unfortunately, I get the message:

org.apache.axiom.om.OMException: No meta factory found for feature 'default'; this usually means that axiom-impl.jar is not in the classpath

08:05:22,226 INFO [stdout] (ServerService Thread Pool -- 61) Caused by: org.apache.axiom.om.OMException: No meta factory found for feature 'default'; this usually means that axiom-impl.jar is not in the classpath

The structure of this EAR is that it has one java project and one WAR (there will be a second WAR coming too). All of the common jars are stored in the EAR and referenced via the manifest.mf in the java project. Then the WAR project references the java project in it's manifest. The java project is where the spring file is....

By the way, I did check and the jar and the axiom.xml is in the META-INF folder and here are the contents of it:

In playing around with this a little bit today, I was able to get axiom to work (to avoid the error), but in doing that, all of a sudden, Spring AOP stopped working.

The way I got axiom to work was by creating a module with the 2 axiom jars (axiom-impl.jar, axiom-api.jar). Then I added a dependency in the jboss-deployment-structure.xml:

<module name="org.apache.axiom" meta-inf="import"/>

And in order to get rid of the error, I had to add an entry in the global-modules area:

<subsystem xmlns="urn:jboss:domain:ee:4.0">

<global-modules>

<module name="javax.jms.api"/>

<module name="com.softwareag.webMethods.broker"/>

<module name="org.apache.axiom"/>

</global-modules>

...

The app had been failing on startup during a few web service calls. By doing the above, the app started up successfully, making all the web service calls (via axiom) successfully, but when I first tried to hit the app, it failed with a nullpointer. The nullpointer was caused by something our Aspect was not doing. I put a breakpoint in the method in the Aspect that is decorated with the @Around advice. The code never stopped there. So, I had to revert the references to the axiom module I had created and switch my spring configuration back to using the org.springframework.ws.soap.saaj.SaajSoapMessageFactory (instead of the org.springframework.ws.soap.axiom.AxiomSoapMessageFactory).

So, at the end of the day, I'm still where I was at the start of this thread...