The primary purpose of that switching logic is to support Axis2 instead of CXF, but at current time only the CXF support works and is shipped. You're definitely right, with CXF under the cover the Axis2 saaj impl won't work.

-David

On Apr 24, 2008, at 10:02 AM, jfjames wrote:


I currently work on a JAX-WS benchmark using OpenEJB. I've a client and a server (a SLSB annotated with @WebService) which work. I've tried to use axis2 in place of sun as SAAJ provider to see if there are any performance
improvement (according to SaajFactoryFinder code, axis2 is preferred).
I use OpenEJB 3.0 final embedded in Tomcat 6.0.16. What I have done :
1/ put the additionnal jar files in the lib directory of openejb :
axis-saaj-1.3.jar and axiom-xxx-1.2.5.jar (xxx meaning : api, dom and impl),
2/ start Tomcat with the JVM property :
-Dorg.apache.openejb.server.webservices.saaj.provider=axis2
What happens :
1/ Tomcat and OpenEJB starts correctely,
2/ when I run my client an exception is thrown :
INFO: Interceptor has thrown exception, unwinding now
org.w3c.dom.DOMException: NAMESPACE_ERR: An attempt is made to create or change an object in a way which is incorrect with regard to namespaces.
        at org.apache.axiom.om.impl.dom.NodeImpl.setPrefix(NodeImpl.java:125)
at org.apache.cxf.staxutils.StaxUtils.startElement(StaxUtils.java: 563) at org.apache.cxf.staxutils.StaxUtils.readDocElements(StaxUtils.java:630)
        at
org .apache .cxf .binding .soap.saaj.SAAJInInterceptor.handleMessage(SAAJInInterceptor.java:110)
        at
org .apache .cxf .binding .soap.saaj.SAAJInInterceptor.handleMessage(SAAJInInterceptor.java:63)
        at
org .apache .cxf .phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java: 208)
        at
org .apache .cxf .transport .ChainInitiationObserver.onMessage(ChainInitiationObserver.java:77)
        at
org .apache .openejb.server.cxf.HttpDestination.invoke(HttpDestination.java:111)
        at
org .apache .openejb.server.cxf.CxfWsContainer.processPOST(CxfWsContainer.java: 114)
        at org.apache.openejb.server.cxf..onMessage(CxfWsContainer.java:85)
        at
org .apache.openejb.server.webservices.WsServlet.service(WsServlet.java: 98)
etc ...

I wonder if it's really possible to use axis2 as SAAJ provider ? The code of SaajFactoryFinder suggests it but does it really make sense with CxF under
the cover ?

--
View this message in context: 
http://www.nabble.com/Error-using-Axis2-as-a-SAAJ-provider-tp16851065p16851065.html
Sent from the OpenEJB User mailing list archive at Nabble.com.



Reply via email to