[
https://issues.apache.org/jira/browse/CXF-5166?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13727925#comment-13727925
]
Daniel Kulp commented on CXF-5166:
----------------------------------
Just a note for my reference: technically, CXF has never worked with or
supported the JAXB implementation build into WebSphere. When the context was
created, if it was NOT a com.sun.xml.bind version, it would force a recreation
with the com.sun.xml.internal.bind (JAXB version in the JDK). The commit was
to NOT do that to start allowing support for additional JAXB implementation to
work. Thus, we COULD now check if its not a com.sun or org.eclipse version
and defer back to the old "internal" methods or we COULD add additional code to
support the IBM JAXB impl. Without access to the IBM JAXB impl, the 2nd
option would be hard. Alternatively, if not Sun/Eclipse we could TRY
processing some of the annotations ourselves to see if we can generate the
BeanInfo objects that way. May not be 100% matching the impl, but we could
probably hit a very large %.
Anyway, just thoughts for right now.
> Regression: Incompatibility with WAS JAXB 2.2
> ---------------------------------------------
>
> Key: CXF-5166
> URL: https://issues.apache.org/jira/browse/CXF-5166
> Project: CXF
> Issue Type: Bug
> Components: Core
> Affects Versions: 2.7.6
> Reporter: David J. M. Karlsen
> Labels: JAXB, WebSphere
>
> After upgrading to latest 2.7.6 I get:
> {noformat}
> Caused by: org.springframework.beans.factory.BeanCreationException: Error
> creating bean with name 'authorizationClient': FactoryBean threw exception on
> object creation; nested exception is java.lang.reflect.Undecl
> aredThrowableException
> at
> org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:149)
> ~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
> at
> org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:102)
> ~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
> at
> org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1454)
> ~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
> at
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:249)
> ~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
> at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
> ~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
> at
> org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:910)
> ~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
> at
> org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:853)
> ~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
> at
> org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:768)
> ~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
> at
> org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:795)
> ~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
> at
> org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:723)
> ~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
> ... 127 common frames omitted
> Caused by: java.lang.reflect.UndeclaredThrowableException: null
> at $Proxy65.getBeanInfo(Unknown Source) ~[na:na]
> at
> org.apache.cxf.common.jaxb.JAXBUtils.getBeanInfo(JAXBUtils.java:1155)
> ~[cxf-api-2.7.6.jar:2.7.6]
> at
> org.apache.cxf.jaxb.JAXBSchemaInitializer.getBeanInfo(JAXBSchemaInitializer.java:140)
> ~[cxf-rt-databinding-jaxb-2.7.6.jar:2.7.6]
> at
> org.apache.cxf.jaxb.JAXBDataBinding.checkForJAXBAnnotations(JAXBDataBinding.java:439)
> ~[cxf-rt-databinding-jaxb-2.7.6.jar:2.7.6]
> at
> org.apache.cxf.jaxb.JAXBDataBinding.justCheckForJAXBAnnotations(JAXBDataBinding.java:427)
> ~[cxf-rt-databinding-jaxb-2.7.6.jar:2.7.6]
> at
> org.apache.cxf.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:352)
> ~[cxf-rt-databinding-jaxb-2.7.6.jar:2.7.6]
> at
> org.apache.cxf.service.factory.AbstractServiceFactoryBean.initializeDataBindings(AbstractServiceFactoryBean.java:86)
> ~[cxf-rt-core-2.7.6.jar:2.7.6]
> at
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromWSDL(ReflectionServiceFactoryBean.java:446)
> ~[cxf-rt-core-2.7.6.jar:2.7.6]
> at
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:548)
> ~[cxf-rt-core-2.7.6.jar:2.7.6]
> at
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:265)
> ~[cxf-rt-core-2.7.6.jar:2.7.6]
> at
> org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:205)
> ~[cxf-rt-frontend-jaxws-2.7.6.jar:2.7.6]
> at
> org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:102)
> ~[cxf-rt-frontend-simple-2.7.6.jar:2.7.6]
> at
> org.apache.cxf.frontend.ClientFactoryBean.create(ClientFactoryBean.java:90)
> ~[cxf-rt-frontend-simple-2.7.6.jar:2.7.6]
> at
> org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientProxyFactoryBean.java:156)
> ~[cxf-rt-frontend-simple-2.7.6.jar:2.7.6]
> at
> org.apache.cxf.jaxws.JaxWsProxyFactoryBean.create(JaxWsProxyFactoryBean.java:156)
> ~[cxf-rt-frontend-jaxws-2.7.6.jar:2.7.6]
> at
> org.apache.cxf.jaxws.spring.JaxWsProxyFactoryBeanDefinitionParser$JAXWSSpringClientProxyFactoryBean.create(JaxWsProxyFactoryBeanDefinitionParser.java:79)
> ~[cxf-rt-frontend-jaxws-2.7.6.jar:2.7.6]
> at
> org.apache.cxf.jaxws.spring.JaxWsProxyFactoryBeanDefinitionParser$JAXWSSpringClientProxyFactoryBean.getObject(JaxWsProxyFactoryBeanDefinitionParser.java:83)
> ~[cxf-rt-frontend-jaxws-2.7.6.jar:2.7.6]
> at
> org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:142)
> ~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
> ... 136 common frames omitted
> Caused by: java.lang.NoSuchMethodException:
> com.ibm.xml.xlxp2.jaxb.JAXBContextImpl.getBeanInfo(java.lang.Class)
> at java.lang.Class.throwNoSuchMethodException(Class.java:282)
> ~[na:1.6.0]
> at java.lang.Class.getMethod(Class.java:853) ~[na:1.6.0]
> at
> org.apache.cxf.common.util.ReflectionInvokationHandler.invoke(ReflectionInvokationHandler.java:52)
> ~[cxf-api-2.7.6.jar:2.7.6]
> ... 154 common frames omitted
> [29.07.13 15:44:28:187 CEST] 0000000a FfdcProvider W
> com.ibm.ws.ffdc.impl.FfdcProvider logIncident FFDC1003I: FFDC Incident
> emitted on
> /usr/IBM/WebSphere/AppServer/profiles/AppSrv01/logs/ffdc/cpl_dev_SPAN_b968414
> _13.07.29_15.44.27.8555959407531874289149.txt
> com.ibm.ws.webcontainer.webapp.WebApp.notifyServletContextCreated 1341
> {noformat}
> If I downgrade to 2.7.5 it's OK again.
> I think this happened in this commit:
> commit ace8a305f45c6e830ec2e83fc2d3c8e3cd163257
> Author: Daniel Kulp <[email protected]>
> Date: Sat Jul 13 21:30:02 2013 +0000
> Initial support for using eclipselink Moxy instead of the JAXB ri. Many
> tests will still fail with it, but most of the simpler things are now working.
>
> WAS version:
> bash-3.2$ /usr/IBM/WebSphere/AppServer/bin/versionInfo.sh
> WVER0010I: Copyright (c) IBM Corporation 2002, 2005, 2008; All rights
> reserved.
> WVER0012I: VersionInfo reporter version 1.15.1.47, dated 10/18/11
> --------------------------------------------------------------------------------
> IBM WebSphere Product Installation Status Report
> --------------------------------------------------------------------------------
> Report at date and time 29. juli 2013 16:35:47 CEST
> Installation
> --------------------------------------------------------------------------------
> Product Directory /usr/IBM/WebSphere/AppServer
> Version Directory /usr/IBM/WebSphere/AppServer/properties/version
> DTD Directory /usr/IBM/WebSphere/AppServer/properties/version/dtd
> Log Directory /var/ibm/InstallationManager/logs
> Product List
> --------------------------------------------------------------------------------
> ND installed
> Installed Product
> --------------------------------------------------------------------------------
> Name IBM WebSphere Application Server Network Deployment
> Version 8.0.0.3
> ID ND
> Build Level cf031212.03
> Build Date 3/20/12
> Package com.ibm.websphere.ND.v80_8.0.3.20120320_0536
> Architecture PPC64
> Installed Features IBM 64-bit SDK for Java, Version 6
> EJBDeploy tool for pre-EJB 3.0 modules
> Embeddable EJB container
> Stand-alone thin clients and resource adapters
> --------------------------------------------------------------------------------
> End Installation Status Report
> --------------------------------------------------------------------------------
> bash-3.2$
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira