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.