Error al cargar .jar en JBoss

Les cuento: Tengo un .ear y un .war
Utilizo Java 1.5.0_21
jboss-4.0.5.GA

Dentro el .ear tengo 7 proyectos que implementan EJB 2.0
El .war lo ocupo para invocar servicios EJB del .ear , uno de los servicios es
el consumo de un WS con soap por lo que utilizo import javax.xml.soap.*; para conexion al mismo y recepción de respuesta.

Mi servidor JBoss en el JDK le pongo la misma versión de Java (1.5.0_21)

Éste es el error que me muestra:

ERROR [2013-02-28 18:46:28,636] (org.jboss.ejb.plugins.LogInterceptor) - Unexpected Error in method: public abstract java.util.ArrayList com.x.y.ejb.facturacion.FacturacionSL.crearFactura(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.Integer,java.lang.String,java.lang.String) throws java.rmi.RemoteException
java.lang.NoSuchMethodError: javax.xml.soap.MessageFactory.newInstance(Ljava/lang/String;)Ljavax/xml/soap/MessageFactory;
        at com.x.y.facturacion.soap.message.SoapMessage.createMessage(SoapMessage.java:47)
        at com.x.y.facturacion.GfaceTransaction.enviarTransaccion(GfaceTransaction.java:115)
        at com.x.y.ejb.facturacion.FacturacionSLBean.crearFactura(FacturacionSLBean.java:95)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:592)
        at org.jboss.invocation.Invocation.performCall(Invocation.java:359)
        at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:237)
        at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:158)
        at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:169)
        at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:63)
        at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:121)
        at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:350)
        at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:181)
        at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:168)
        at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:205)
        at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:136)
        at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:648)
        at org.jboss.ejb.Container.invoke(Container.java:954)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:592)
        at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
        at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
        at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
        at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
        at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
        at org.jboss.invocation.local.LocalInvoker$MBeanServerAction.invoke(LocalInvoker.java:169)
        at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:118)
        at org.jboss.invocation.InvokerInterceptor.invokeLocal(InvokerInterceptor.java:209)
        at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:195)
        at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:61)
        at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:70)
        at org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessionInterceptor.java:112)
        at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:100)
        at $Proxy156.crearFactura(Unknown Source)

Las pruebas que he hecho:

Por lo que investigue es que la version 5 de java no implementa ese método del error, por lo cual requiere 2 .jar
los cuales son: saaj-api-1.3.4.jar y saaj-impl-1.3.4.jar (que a partir de saaj 1.3 ya está implementado dicho método)

Tengo un proyecto Web a parte con el cual invoqué el mismo SW pero sin EJB y me marca el mismo error pero al agregarle los
.jar antes mencionados se soluciona el problema. (Utilizando tanto en el proyecto como en el servidor Java 5)

Lo raro es que esos mismos .jar agregados al proyecto .ear no se quita el error de arriba.

Ya puse en el .ear los .jar en el MANIFEST.MF del proyecto EJB que hace la conexión al WS y ni aún así funciona.

Manifest-Version: 1.0
Class-Path: xsd.bean.runtime.jar
 commons-logging.jar
 commons-discovery-0.2.jar
 saaj.jar
 webservice-runtime.jar
 jaxrpc.jar
 xstream-1.4.3.jar
 xpp3-1.1.4c.jar
 commons-codec-1.5.jar
 saaj-api-1.3.4.jar
 saaj-impl-1.3.4.jar

Lo extraño es que si al servidor en el JBoss JDK name: le cambio la version a Java 6 si funciona.

Supongo que no me esta cargando los .jar por lo cual no esta reconociendo la implementación del metodo: javax.xml.soap.MessageFactory.newInstance.

Otra duda, se supone que en java 5 no está implementado ese método, mi pregunta, porque no marca un error de compilación en dicha linea????

MessageFactory factory = MessageFactory.newInstance(SOAPConstants.DEFAULT_SOAP_PROTOCOL);
message = factory.createMessage();

Espero haberme explicado y espero no estar mal en mis deducciones.

Alguna idea que tengan colegas????