This is likely another example of WAS classloader hell...we have been there too many times in our company. If that application client is packed in a JAR that is inside your WAR .... Check that you have classloader policy set to PARENT_LAST and classloader PER Application....NOT single classloader. The built-in stack that IBM WAS has (included as part of WAS7, but installed as part of some "Feature Pack" for WAS 6, contains plenty of JARs w/ conflicting API level classes).
Mark On Mar 9, 2012 4:03 PM, "yuplushu" <[email protected]> wrote: > Glen, > > Thanks for quick response. I tried a couple of ways to add > SOAPHeader, including SOAPHandler, all worked fine in stand alone. The > problem is once the jars in Wephere 6.1 are included, variety of errors are > thrown. I can't get rid of those jars. > For using SOAPHandler, the error is : > > Mar 9, 2012 2:25:59 PM org.apache.cxf.phase.PhaseInterceptorChain > doIntercept > WARNING: Interceptor has thrown exception, unwinding now > org.w3c.dom.DOMException: HIERARCHY_REQUEST_ERR: An attempt was made to > insert a node where it is not permitted. > at org.apache.xerces.dom.CoreDocumentImpl.insertBefore(Unknown Source) > at org.apache.xerces.dom.NodeImpl.appendChild(Unknown Source) > at > com.ibm.ws.webservices.engine.xmlsoap.SOAPPart.appendChild(SOAPPart.java:282) > at > org.apache.cxf.staxutils.W3CDOMStreamWriter.setChild(W3CDOMStreamWriter.java:114) > at > org.apache.cxf.staxutils.W3CDOMStreamWriter.newChild(W3CDOMStreamWriter.java:104) > at > org.apache.cxf.staxutils.W3CDOMStreamWriter.writeStartElement(W3CDOMStreamWriter.java:132) > at > org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor.writeSoapEnvelopeStart(SoapOutInterceptor.java:121) > at > org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor.handleMessage(SoapOutInterceptor.java:80) > at > org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor.handleMessage(SoapOutInterceptor.java:61) > at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:236) > at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:483) > at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:309) > at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:261) > at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73) > at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124) > at $Proxy38.createProgram100(Unknown Source) > at client.glen.mazzas.WSClient.main(WSClient.java:83) > javax.xml.ws.soap.SOAPFaultException: HIERARCHY_REQUEST_ERR: An attempt > was made to insert a node where it is not permitted. > at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:146) > at $Proxy38.createProgram100(Unknown Source) > at client.glen.mazzas.WSClient.main(WSClient.java:83) > > > > > --- On Fri, 3/9/12, Glen Mazza (Talend) [via CXF] < > [email protected]> wrote: > > > From: Glen Mazza (Talend) [via CXF] < > [email protected]> > Subject: Re: cxf 2.2.5 ws client in websphere v6.1, got ClassCastException > error > To: "yuplushu" <[email protected]> > Date: Friday, March 9, 2012, 11:44 AM > > > Not to say that it doesn't exist, but I haven't seen that way of adding > SOAP Headers before (it almost looks like a way to add HTTP headers > instead). Links #43 and #44 here: > http://www.jroller.com/gmazza/entry/blog_article_index show alternative > ways of adding SOAP headers using interceptors or JAX-WS Handlers. If > no one else can fix your code below you may wish to look at those methods. > > Regards, > Glen > > On 03/09/2012 11:49 AM, yuplushu wrote: > > > CXF 2.2.5 client call web service operation from ear that deployed to > > webphere application server v6.1. It works fine untill a SOAP header is > > added as: > > > > DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); > > DocumentBuilder db = dbf.newDocumentBuilder(); > > Document d = db.newDocument(); > > Element dummy = d.createElement("dummy"); > > dummy.setTextContent("Dummy Header"); > > Header dummyHeader = new Header(new QName("urn:dummySpace", > "dummyHeader"), > > dummy); > > List<Header> headersList = new ArrayList<Header>(); > > headersList.add(dummyHeader); > > bindingProvider.getRequestContext().put(Header.HEADER_LIST, headersList); > > > > Then get error: > > > > PhaseIntercep W org.apache.cxf.phase.PhaseInterceptorChain doIntercept > > Interceptor has thrown exception, unwinding now > > java.lang.ClassCastException: > > org.apache.cxf.headers.Header incompatible with > > org.apache.cxf.headers.Header > > at > > > org.apache.cxf.binding.soap.interceptor.SoapHeaderOutFilterInterceptor.handleMessage(SoapHeaderOutFilterInterceptor.java:40) > > at > > > org.apache.cxf.binding.soap.interceptor.SoapHeaderOutFilterInterceptor.handleMessage(SoapHeaderOutFilterInterceptor.java:29) > > at > > > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:236) > > at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:483) > > at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:309) > > at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:261) > > at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73) > > at > org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124) > > at $Proxy290.createProgram100(Unknown Source) > > > > I can't find any other cxf jars except cxf-2.2.5.jar. > > Also can't change class loader to "PARENT_LAST" because the app > > infrastructure requires "PAREAN_FIRST". > > Any suggstion to work around it? > > > > -- > > View this message in context: > http://cxf.547215.n5.nabble.com/cxf-2-2-5-ws-client-in-websphere-v6-1-got-ClassCastException-error-tp5551164p5551164.html > > Sent from the cxf-user mailing list archive at Nabble.com. > > -- > Glen Mazza > Talend Community Coders - coders.talend.com > blog: www.jroller.com/gmazza > > > > > > > > If you reply to this email, your message will be added to the discussion > below: > http://cxf.547215.n5.nabble.com/cxf-2-2-5-ws-client-in-websphere-v6-1-got-ClassCastException-error-tp5551164p5551302.html > To unsubscribe from cxf 2.2.5 ws client in websphere v6.1, got > ClassCastException error, click here. > NAML > > -- > View this message in context: > http://cxf.547215.n5.nabble.com/cxf-2-2-5-ws-client-in-websphere-v6-1-got-ClassCastException-error-tp5551164p5551665.html > Sent from the cxf-user mailing list archive at Nabble.com. >
