Uploaded image for project: 'JBoss Enterprise Application Platform 4 and 5'
  1. JBoss Enterprise Application Platform 4 and 5
  2. JBPAPP-7220

Cannot package spring-beans.jar in application that uses JBossWS-CXF

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Obsolete
    • Icon: Major Major
    • EAP_EWP 5.2.0
    • EAP_EWP 5.1.1
    • Web Services
    • None
    • Hide

      1. Build a JAX-WS web service.
      2. Include spring-beans.jar in the application library (e.g. WEB-INF/lib)
      3. Install JBossWS-CXF in your JBoss instance
      4. Deploy the application
      5. Invoke any operation on the WS, including a WSDL request.

      Show
      1. Build a JAX-WS web service. 2. Include spring-beans.jar in the application library (e.g. WEB-INF/lib) 3. Install JBossWS-CXF in your JBoss instance 4. Deploy the application 5. Invoke any operation on the WS, including a WSDL request.
    • Release Notes
    • Hide

      Don't include spring-beans.jar in application library.

      Show
      Don't include spring-beans.jar in application library.
    • Low
    • Not Required
    • NEW

      When JBossWS creates the CXF Bus, CXF uses Spring to wire up some if its components. The TCCL in use at this time is the application's CL. This means any Spring classes in the application will be loaded in favor of Spring classes in the $JBOSS_HOME/server/$PROFILE/deployers/jbossws.deployers folder, and this causes the exception below. The issue shouldn't come up if CXF was loaded from the application, too. This is fixed by changing the TCCL to the same CL that loaded the CXF libraries.

      18:04:29,155 WARNING [SpringBusFactory] Initial attempt to crate application context was unsuccessful.
      org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.apache.cxf.binding.soap.customEditorConfigurer' defined in URL [vfszip:/Users/klape/jboss/product-distributions/jboss-as/server/default/deployers/jbossws.deployer/cxf-rt-bindings-soap.jar/META-INF/cxf/cxf-extension-soap.fixml]: Initialization of bean failed; nested exception is org.springframework.beans.TypeMismatchException: Failed to convert property value of type [java.util.ArrayList] to required type [org.springframework.beans.PropertyEditorRegistrar[]] for property 'propertyEditorRegistrars'; nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [org.apache.cxf.binding.soap.spring.SoapVersionRegistrar] to required type [org.springframework.beans.PropertyEditorRegistrar] for property 'propertyEditorRegistrars[0]': no matching editors or conversion strategy found
             at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:480)
             at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
             at java.security.AccessController.doPrivileged(Native Method)
             at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
             at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
             at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
             at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
             at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
             at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
             at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429)
             at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)
             at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380)
             at org.apache.cxf.bus.spring.BusApplicationContext.<init>(BusApplicationContext.java:91)
             at org.apache.cxf.bus.spring.SpringBusFactory.createApplicationContext(SpringBusFactory.java:102)
             at org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:93)
             at org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:86)
             at org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:64)
             at org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:53)
             at org.apache.cxf.transport.servlet.CXFServlet.updateContext(CXFServlet.java:117)
             at org.apache.cxf.transport.servlet.CXFServlet.loadSpringBus(CXFServlet.java:101)
             at org.apache.cxf.transport.servlet.CXFServlet.loadBus(CXFServlet.java:70)
             at org.jboss.wsf.stack.cxf.CXFServletExt.loadBus(CXFServletExt.java:92)
             at org.apache.cxf.transport.servlet.AbstractCXFServlet.init(AbstractCXFServlet.java:78)
             at org.jboss.wsf.stack.cxf.CXFServletExt.init(CXFServletExt.java:79)
             at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1048)
             at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:777)
             at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129)
             at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
             at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:183)
             at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:95)
             at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
             at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
             at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
             at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
             at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
             at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
             at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
             at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
             at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
             at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:451)
             at java.lang.Thread.run(Thread.java:680)
      Caused by: org.springframework.beans.TypeMismatchException: Failed to convert property value of type [java.util.ArrayList] to required type [org.springframework.beans.PropertyEditorRegistrar[]] for property 'propertyEditorRegistrars'; nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [org.apache.cxf.binding.soap.spring.SoapVersionRegistrar] to required type [org.springframework.beans.PropertyEditorRegistrar] for property 'propertyEditorRegistrars[0]': no matching editors or conversion strategy found
             at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:391)
             at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.convertForProperty(AbstractAutowireCapableBeanFactory.java:1289)
             at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1250)
             at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1010)
             at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:472)
             ... 40 more
      Caused by: java.lang.IllegalArgumentException: Cannot convert value of type [org.apache.cxf.binding.soap.spring.SoapVersionRegistrar] to required type [org.springframework.beans.PropertyEditorRegistrar] for property 'propertyEditorRegistrars[0]': no matching editors or conversion strategy found
             at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:231)
             at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:124)
             at org.springframework.beans.TypeConverterDelegate.convertToTypedArray(TypeConverterDelegate.java:393)
             at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:186)
             at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:138)
             at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:386)
             ... 44 more
      

              rhn-support-asoldano Alessio Soldano
              rh-ee-klape Kyle Lape
              Petr Penicka Petr Penicka (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: