cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dhogan <dirk.ho...@forgerock.com>
Subject RE: WebSphere 8.5 hanging CXF STS implementation?
Date Tue, 16 Apr 2013 16:20:07 GMT
An update (with more information), but still no solution. Again, I have a
web-service that publishes STS instances. I've:
1. disabled the WebSphere web-services engine
2. set the single classloader policy which looks locally first.

Publishing this initial web-service fails, with the following stack trace
(other CXF users have experienced this - e.g.
http://cxf.547215.n5.nabble.com/Getting-Caused-by-java-lang-IncompatibleClassChangeError-org-apache-neethi-AssertionBuilderFactory-e5-td5716804.html.)


[4/15/13 15:05:05:246 PDT] 00000057 webapp        E
com.ibm.ws.webcontainer.webapp.WebApp logServletError SRVE0293E: [Servlet
Error]-[new_sts]: org.apache.cxf.bus.extension.ExtensionException: Could not
load extension class org.apache.cxf.ws.policy.AssertionBuilderRegistryImpl.
        at
org.apache.cxf.bus.extension.Extension.tryClass(Extension.java:173)
        at
org.apache.cxf.bus.extension.Extension.getClassObject(Extension.java:185)
        at
org.apache.cxf.bus.extension.ExtensionManagerImpl.activateAllByType(ExtensionManagerImpl.java:138)
        at
org.apache.cxf.bus.extension.ExtensionManagerBus.<init>(ExtensionManagerBus.java:126)
        at
org.apache.cxf.bus.extension.ExtensionManagerBus.<init>(ExtensionManagerBus.java:134)
        at org.apache.cxf.bus.CXFBusFactory.createBus(CXFBusFactory.java:40)
        at org.apache.cxf.bus.CXFBusFactory.createBus(CXFBusFactory.java:36)
        at org.apache.cxf.bus.CXFBusFactory.createBus(CXFBusFactory.java:32)
        at
org.apache.cxf.transport.servlet.CXFNonSpringServlet.loadBus(CXFNonSpringServlet.java:101)
        at
org.forgerock.openam.sts.publish.web.STSInstancePublisher.loadBus(STSInstancePublisher.java:19)
        at
org.apache.cxf.transport.servlet.CXFNonSpringServlet.init(CXFNonSpringServlet.java:71)
        at
com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:337)
        at
com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.init(ServletWrapperImpl.java:168)
        at
com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:630)
        at
com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:457)
        at
com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
        at
com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136)
        at
com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:97)
        at
org.forgerock.openam.validation.ResponseValidationFilter.doFilter(ResponseValidationFilter.java:44)
        at
com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
        at
com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
        at
com.sun.identity.setup.AMSetupFilter.doFilter(AMSetupFilter.java:95)
        at
com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
        at
com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
        at
com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:928)
        at
com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1025)
        at
com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3761)
        at
com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:304)
        at
com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:975)
        at
com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662)
        at
com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:195)
        at
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:459)
        at
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:526)
        at
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:312)
        at
com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:87)
        at
com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
        at
com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
        at
com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
        at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
        at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
        at
com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
        at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
        at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1815)
Caused by: java.lang.IncompatibleClassChangeError:
org.apache.neethi.AssertionBuilderFactory
        at java.lang.ClassLoader.defineClassImpl(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:264)
        at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:74)
        at
com.ibm.ws.classloader.CompoundClassLoader._defineClass(CompoundClassLoader.java:853)
        at
com.ibm.ws.classloader.CompoundClassLoader.localFindClass(CompoundClassLoader.java:763)
        at
com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:586)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:650)
        at java.lang.ClassLoader.defineClassImpl(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:264)
        at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:74)
        at
com.ibm.ws.classloader.CompoundClassLoader._defineClass(CompoundClassLoader.java:853)
        at
com.ibm.ws.classloader.CompoundClassLoader.localFindClass(CompoundClassLoader.java:763)
        at
com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:586)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:650)
        at
org.apache.cxf.bus.extension.Extension.tryClass(Extension.java:169)
        ... 42 more

Triggering the verbose classloading shows:

class load: org.apache.neethi.AssertionBuilderFactory from:
file:/home/dhogan/IBM/WebSphere/AppServer/plugins/org.apache.axis2.jar.

Attempting to address this problem via the endorsed mechanism won't work (as
suggested in responses to this problem) , as the class in question is not
part of the package-set that can be overridden by the endorsed mechanism
(besides the fact that the class is being loaded by WebSphere, not by java). 

So I expanded the org.apache.axis2.jar, and replaced the org.apache.neethi
classes with those in neethi-3.0.2.jar. This got me a bit further. Next
error:

java.lang.NoSuchMethodError:
org/apache/ws/commons/schema/XmlSchemaCollection.read(Lorg/w3c/dom/Document;Ljava/lang/String;)Lorg/apache/ws/commons/schema/XmlSchema;
        at
org.apache.cxf.common.xmlschema.SchemaCollection.read(SchemaCollection.java:133)
        at
org.apache.cxf.databinding.AbstractDataBinding.addSchemaDocument(AbstractDataBinding.java:192)
        at
org.apache.cxf.databinding.AbstractDataBinding.addSchemaDocument(AbstractDataBinding.java:95)
        at
org.apache.cxf.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:388)
        at
org.apache.cxf.service.factory.AbstractServiceFactoryBean.initializeDataBindings(AbstractServiceFactoryBean.java:86)
        at
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromClass(ReflectionServiceFactoryBean.java:475)
        at
org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.buildServiceFromClass(JaxWsServiceFactoryBean.java:690)
        at
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:537)
        at
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:249)
        at
org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:205)
        at
org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:101)
        at
org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:159)
        at
org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:211)
        at
org.forgerock.openam.sts.publish.web.STSInstancePublisher.loadBus(STSInstancePublisher.java:33)
        at
org.apache.cxf.transport.servlet.CXFNonSpringServlet.init(CXFNonSpringServlet.java:71)
        at
com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:336)
        at
com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.init(ServletWrapperImpl.java:168)
        at
com.ibm.ws.webcontainer.servlet.ServletWrapper.load(ServletWrapper.java:1360)
        at
com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:982)
        at
com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3748)
        at
com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:304)
        at
com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:962)
        at
com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662)
        at
com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:195)
        at
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:459)
        at
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:526)
        at
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:312)
        at
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:283)
        at
com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
        at
com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
        at
com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
        at
com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
        at
com.ibm.io.async.AsyncChannelFuture$1.run(AsyncChannelFuture.java:205)
        at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1814)

>From the classloader logs:

class load: org.apache.ws.commons.schema.XmlSchemaCollection from:
file:/home/dhogan/IBM/WebSphere/AppServer/plugins/org.apache.axis2.jar

Again, we are not dealing with a package that can be over-ridden by the
endorsed mechanism.

I replaced the org.apache.ws.commons.schema classes in the
org.apache.axis2.jar with those in xmlschema-core-2.0.3.jar. That allowed me
to successfully publish an STS instance (callers authenticated via
username-tokens over the symmetric binding). 

As soon as I try to get my STS to issue a SAML token, the box CPU pegs with
the stack traces mentioned in my first post. I get the same issue set on
Ubuntu 10.04 desktop (not an officially supported platform for WebSphere
8.5), and on SUSE Linux Enterprise Desktop 11 (officially supported
WebSphere 8.5 platform).
I get this problem regardless of whether I package the servicemix .jar in my
.war file.

I'm hoping that someone in CXF-land has run into this problem and can
provide some insight...

Thanks

Dirk



--
View this message in context: http://cxf.547215.n5.nabble.com/WebSphere-8-5-hanging-CXF-STS-implementation-tp5725997p5726390.html
Sent from the cxf-user mailing list archive at Nabble.com.

Mime
View raw message