I tried more options tonight.
With the parent last classloader, even when I add xalan, xercesImpl
and xml-apis' from within xalan 2.7.1 bin to WEB-INF/lib, I still get
this same error (DocumentBuilderFactory class cast exception)
In websphere 7.0, there isn't a washome/java/jre/lib/endorsed, but
there is a washome/java/jre/lib/ext folder. I've also tried placing
the same version of xalan/xerces/xml-api's in there too - still no
luck, same error.
So it seems to be finding the wrong interface but the correct
implementation - or vice versa. I turned on verbose class loading and
I do see this:
class load: org.apache.xerces.jaxp.DocumentBuilderFactoryImpl from:
file:/.../wasProfile/installedApps/myCell/myApp.ear/myApp.war/WEB-INF/lib/xercesImpl.jar
class load: javax.xml.parsers.DocumentBuilder from:
file:/.../wasProfile/installedApps/myCell/myApp.ear/myApp.war/WEB-INF/lib/xml-apis.jar
These are the correct jars/classes that I expect to use - but there
are others higher up in the class loader hierarchy (JVM level) from
different jars.
Next thing I tried: remove xerces/xalan/xml-apis and replace them with
jaxp-api and jaxp-ri from Sun. Same exact error.
Last thing I tried tonight: Remove all (jaxp-api, jaxp-ri, xml-apis,
xerces, xalan)
This resulted in:
Caused by: 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:122)
at
org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor.handleMessage(SoapOutInterceptor.java:81)
at
org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor.handleMessage(SoapOutInterceptor.java:61)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263)
at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:535)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:465)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:368)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:321)
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:88)
at
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:134)
Anyone have an idea here?
Shouldn't the parent last classloader order have fixed this already?
This is where it's set (per the PDF):
Enterprise Applications > myapp > manage modules > mywar > classes
loaded with Choice: local class loader first (parent last)
Thanks,
Brian
On Wed, Dec 28, 2011 at 7:32 PM, Brian Hayward <[email protected]> wrote:
> Been trying for a while now.
>
> Can you send me the jar list you have in your project? (minus the custom
> ones)
>
> Thanks
> Brian
>
> On Dec 28, 2011 7:24 PM, "Mahesh Koli" <[email protected]> wrote:
>>
>> I don't know if this would help
>>
>> But I had similar problem when trying to generate java client classes from
>> wsdl and one of the xml apis where in conflict.
>>
>> I got around it by trial and error, by traversing through which class it
>> is
>> expecting and which class is getting loaded that causes that class cast
>> exception.
>>
>> Using elimination method, I was able to have the correct dependencies in
>> the classpath.
>>
>> Maybe you have already tried this
>>
>> Mahesh
>>
>>
>> On Wed, Dec 28, 2011 at 7:17 PM, Brian Hayward <[email protected]> wrote:
>>
>> > Thanks for replying.
>> >
>> > I found your article before, I also followed Thaker's guide, none of
>> > them have solved it.
>> >
>> > It is a problem with my list of jars in WEB-INF/lib. Unfortunately, I
>> > just don't know what the correct combination of jars is to make this
>> > work. I've tried to piece it together unsuccessfully by looking at
>> > other articles - but the articles for 2.5 are thin. Most are for
>> > 2.0-2.2 CXF / Spring 2.x.
>> >
>> > If you add to your article a complete list of the jars and
>> > dependencies required in WEB-INF/lib and endorsed folders to get this
>> > to work, it would prove a great service to me and others I suspect.
>> > So far, I've not found any site or article that provides this list for
>> > WAS 7.0 + CXF 2.5.
>> >
>> > Thanks,
>> > Brian
>> >
>> >
>> > On Wed, Dec 28, 2011 at 5:38 PM, Glen Mazza <[email protected]> wrote:
>> > > Might this help?
>> > >
>> > > http://www.jroller.com/gmazza/entry/deploying_webservices_on_websphere
>> > >
>> > > Glen
>> > >
>> > >
>> > > On 12/28/2011 05:56 PM, Brian Hayward wrote:
>> > >>
>> > >> Hey all,
>> > >>
>> > >> So far, I've tried a number of things to get the above combination
>> > >> working with no luck.
>> > >> * Follow the PDF provided by IBM
>> > >> * Follow the tips in this email thread, such as putting neethi,
>> > >> xmlschema in the JVM endorsed folder
>> > >> * Parent Last classloader configurations
>> > >> * Disabling JAX-WS Annotation Scanning
>> > >> * With and without saaj-*-1.3.2 and xerces in the WEB-INF/lib
>> > >> * CXF Wiki articles
>> > >> * With and without SUN JAXP 1.4.x in WEB-INF/lib
>> > >>
>> > >> It works fine in Apache Tomcat, but no dice on WAS 7.0.
>> > >>
>> > >> All of my issues revolve around XML Parsing and JAX-WS implementation
>> > >> jar conflicts. Not sure which exception to list, It seems I go in
>> > >> circles - I always get one of 3 different exceptions depending on the
>> > >> arrangement of the jars.
>> > >>
>> > >> If someone has been successful with this, can you send a list of the
>> > >> jar's in WEB-INF/lib + any additions to endorsed folders that were
>> > >> required? Also - if you have a good maven pom.xml for building it
>> > >> with the right dependencies, that would be even better.
>> > >>
>> > >> Here is my current exception:
>> > >> Caused by: java.lang.ClassCastException:
>> > >> com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl
>> > >> incompatible with javax.xml.parsers.DocumentBuilderFactory
>> > >> at
>> > >> javax.xml.parsers.DocumentBuilderFactory.newInstance(Unknown
>> > >> Source)
>> > >> at java.util.Properties.loadFromXML(Properties.java:662)
>> > >>
>> > >>
>> > >> Here is the list of jar's in WEB-INF/lib folder:
>> > >>
>> > >> antlr-2.7.6.jar
>> > >> aopalliance-1.0.jar
>> > >> asm-3.3.jar
>> > >> asm-all-3.1.jar
>> > >> cglib-nodep-2.2.jar
>> > >> classworlds-1.1.jar
>> > >> commons-beanutils-1.8.3.jar
>> > >> commons-beanutils-core-1.8.0.jar
>> > >> commons-cli-1.0.jar
>> > >> commons-codec-1.2.jar
>> > >> commons-collections-3.1.jar
>> > >> commons-configuration-1.6.jar
>> > >> commons-digester-1.8.jar
>> > >> commons-httpclient-2.0.2.jar
>> > >> commons-io-1.3.2.jar
>> > >> commons-lang-2.5.jar
>> > >> commons-logging-1.1.1.jar
>> > >> commons-logging-api-1.0.4.jar
>> > >> commons-validator-1.2.0.jar
>> > >> cxf-api-2.5.0.jar
>> > >> cxf-common-utilities-2.5.0.jar
>> > >> cxf-rt-bindings-soap-2.5.0.jar
>> > >> cxf-rt-bindings-xml-2.5.0.jar
>> > >> cxf-rt-core-2.5.0.jar
>> > >> cxf-rt-databinding-jaxb-2.5.0.jar
>> > >> cxf-rt-frontend-jaxrs-2.5.0.jar
>> > >> cxf-rt-frontend-jaxws-2.5.0.jar
>> > >> cxf-rt-frontend-simple-2.5.0.jar
>> > >> cxf-rt-rs-security-xml-2.5.0.jar
>> > >> cxf-rt-transports-common-2.5.0.jar
>> > >> cxf-rt-transports-http-2.5.0.jar
>> > >> cxf-rt-transports-http-jetty-2.5.0.jar
>> > >> cxf-rt-ws-addr-2.5.0.jar
>> > >> cxf-rt-ws-policy-2.5.0.jar
>> > >> cxf-rt-ws-security-2.5.0.jar
>> > >> cxf-services-sts-core-2.5.0.jar
>> > >> cxf-tools-common-2.5.0.jar
>> > >> dom4j-1.6.1.jar
>> > >> doxia-core-1.0-alpha-7.jar
>> > >> doxia-decoration-model-1.0-alpha-7.jar
>> > >> doxia-sink-api-1.0-alpha-7.jar
>> > >> doxia-site-renderer-1.0-alpha-7.jar
>> > >> easymock-3.0.jar
>> > >> easymockclassextension-3.0.jar
>> > >> ehcache-core-2.4.4.jar
>> > >> file-management-1.1.jar
>> > >> hazelcast-1.9.4.jar
>> > >> hibernate-core-3.5.4-Final.jar
>> > >> jaxb-impl-2.1.13.jar
>> > >> jaxp-api.jar
>> > >> jaxp-ri.jar
>> > >> jdom-1.0.jar
>> > >> jettison-1.3.jar
>> > >> joda-time-1.6.2.jar
>> > >> jsch-0.1.27.jar
>> > >> jsp-api-2.1.jar
>> > >> jsr311-api-1.1.1.jar
>> > >> jstl-1.2.jar
>> > >> jta-1.1.jar
>> > >> jtidy-4aug2000r7-dev.jar
>> > >> log4j-1.2.16.jar
>> > >> neethi-3.0.1.jar
>> > >> objenesis-1.2.jar
>> > >> opensaml-2.5.1-1.jar
>> > >> openws-1.4.2-1.jar
>> > >> oro-2.0.7.jar
>> > >> serializer-2.7.1.jar
>> > >> slf4j-api-1.5.11.jar
>> > >> slf4j-log4j12-1.5.11.jar
>> > >> slide-webdavlib-2.1.jar
>> > >> spring-2.5.6.jar
>> > >> spring-aop-3.0.5.RELEASE.jar
>> > >> spring-asm-3.0.6.RELEASE.jar
>> > >> spring-beans-3.0.5.RELEASE.jar
>> > >> spring-context-3.0.6.RELEASE.jar
>> > >> spring-core-3.0.6.RELEASE.jar
>> > >> spring-expression-3.0.6.RELEASE.jar
>> > >> spring-ldap-core-1.3.1.RELEASE.jar
>> > >> spring-tx-3.0.5.RELEASE.jar
>> > >> spring-web-3.0.6.RELEASE.jar
>> > >> stax2-api-3.1.1.jar
>> > >> velocity-1.4.jar
>> > >> velocity-dep-1.4.jar
>> > >> woodstox-core-asl-4.1.1.jar
>> > >> wsdl4j-1.6.2.jar
>> > >> wss4j-1.6.3.jar
>> > >> xalan-2.7.1.jar
>> > >> xml-apis-1.0.b2.jar
>> > >> xml-im-exporter-1.1.jar
>> > >> xml-resolver-1.2.jar
>> > >> xmlschema-core-2.0.1.jar
>> > >> xmlsec-1.4.5.jar
>> > >> xmltooling-1.3.2-1.jar
>> > >
>> > >
>> > >
>> > > --
>> > > Glen Mazza
>> > > Talend Community Coders
>> > > http://coders.talend.com
>> > > blog: http://www.jroller.com/gmazza
>> > >
>> >