Uploaded image for project: 'RiftSaw'
  1. RiftSaw
  2. RIFTSAW-257

When deploying the CXF stack to JBossWS, update spring version to be consistent with JBossESB

This issue belongs to an archived project. You can view it, but you can't modify it. Learn more

    XMLWordPrintable

Details

    • Task
    • Resolution: Won't Do
    • Major
    • 2.2.0.CR2
    • 2.1.0.Final
    • Integration
    • None
    • Compatibility/Configuration
    • workaround is that: manually updating the ../deployers/jbossws.deployer/spring*.jar version to 2.5.6.SEC01

    Description

      Currently, JBossESB 4.8 deploys with spring jars for Spring 2.5.6.SEC01:

      deploy/spring.esb/spring-aspects-2.5.6.SEC01.jar
      deploy/spring.esb/spring-2.5.6.SEC01.jar

      At the same time, when installing RiftSaw with CXF stack specified, some Spring jars are installed and they have version 2.5.5 visible in their manifests:

      deployers/jbossws.deployer/spring-context.jar
      deployers/jbossws.deployer/spring-tx.jar
      deployers/jbossws.deployer/spring-core.jar
      deployers/jbossws.deployer/spring-beans.jar
      deployers/jbossws.deployer/spring-jms.jar

      The version mismatch between ESB and CXF stack causes problems when making use of some features of Spring Framework in Riftsaw's CXF web service endpoint configuration descriptors.

      E.g. if one tries to create a bean for accessing EJBs to be used by CXF interceptors:

      <bean id="ejbProxyBean"
      class="org.springframework.ejb.access.LocalStatelessSessionProxyFactoryBean">
      <property name="jndiName" value="SomeSessionEJB"/>
      <property name="businessInterface" value="SomeSessionEJBInterface"/>
      </bean>

      The result is an exception in the logs:

      org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ejbProxyBean' ....
      ....
      Caused by: java.lang.NoSuchMethodError: org.springframework.util.ReflectionUtils.isEqualsMethod(Ljava/lang/reflect/Method;)Z
      at org.springframework.aop.support.AopUtils.isEqualsMethod(AopUtils.java:118)
      at org.springframework.aop.framework.JdkDynamicAopProxy.findDefinedEqualsAndHashCodeMethods(JdkDynamicAopProxy.java:131)
      at org.springframework.aop.framework.JdkDynamicAopProxy.getProxy(JdkDynamicAopProxy.java:116)
      at org.springframework.aop.framework.ProxyFactory.getProxy(ProxyFactory.java:110)
      at org.springframework.ejb.access.LocalStatelessSessionProxyFactoryBean.afterPropertiesSet(LocalStatelessSessionProxyFactoryBean.java:89)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1368)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1334)

      That's because there was no isEqualsMethod() in Spring 2.5.5's version of ReflectionUtils.

      I think that the CXF stack deployment mechanism should be updated to use Spring 2.5.6.SEC01.

      Attachments

        Activity

          People

            jeff.yuchang_jira Jeff Yu (Inactive)
            the_olo_jira Aleksander Adamowski (Inactive)
            Archiver:
            rhn-support-adandapa Aitik Dandapat

            Dates

              Created:
              Updated:
              Resolved:
              Archived:

              PagerDuty