You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomee.apache.org by jfjames <je...@atosorigin.com> on 2008/04/24 19:02:05 UTC

Error using Axis2 as a SAAJ provider

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.


Re: Error using Axis2 as a SAAJ provider

Posted by David Blevins <da...@visi.com>.
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.
>
>