2016-12-12 1 views
0

springframework로 구성된 JMS 응용 프로그램 중 하나를 마이그레이션하려고합니다. 마이그레이션하기 전에 제대로 작동했지만 일단 마이그레이션하면 오류가 발생합니다. 이스프링을 사용하여 JNDITemplate을 구성하는 방법

<bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate"> 
    <property name="environment"> 
     <props> 
      <prop key="java.naming.factory.initial"> 
       org.jnp.interfaces.NamingContextFactory 
      </prop> 
      <prop key="java.naming.provider.url"> 
       localhost 
      </prop> 
      <prop key="java.naming.factory.url.pkgs"> 
       org.jnp.interfaces:org.jboss.naming 
      </prop> 
     </props> 
    </property> 
</bean> 

여기서 콘텍스트를 생성하도록 스프링 구성 파일을 사용하여 자바 코드처럼

Caused by: java.lang.NoClassDefFoundError: org/springframework/core/GenericsHelper 
       at 

는 상기 스프링 confguration 보인다.

DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory(); 

       BeanDefinition jmsConfigBean = BeanDefinitionBuilder.rootBeanDefinition(TestMessageSelector.class).addConstructorArg(testApp.getUser().get_empNo()).getBeanDefinition(); 
       beanFactory.registerBeanDefinition("TestMessageSelector", jmsConfigBean); 

       BeanDefinition jndiEnvironmentBean = BeanDefinitionBuilder.rootBeanDefinition(TestJndiEnvironment.class).addConstructorArg(testApp.mode).getBeanDefinition(); 
       beanFactory.registerBeanDefinition("TestJndiEnvironment", jndiEnvironmentBean); 

       GenericApplicationContext genericContext = new GenericApplicationContext(beanFactory); 
       genericContext.refresh(); 
       new FileSystemXmlApplicationContext(new String[] { "Spring_JMS_Config.xml" }, genericContext); 

내게는 항아리 문제인 것 같습니다. 하지만이 GenericsHelper 항아리가 어디에서 오는지는 정말로 알 수 없습니다. 늙은 봄에 왔을거야. 병아래. 하지만 누군가가 봄 4와 함께이 구성을 구성하는 데 도움이. 그것은 매우 감사하겠습니다.

+0

maven을 사용한다고 가정하면'mvn dependency : tree'를 실행하고 의존성을 확인하십시오. –

답변

0

GenericsHelper은 이전 버전의 Spring (2.5 이전 버전)에 포함되었습니다.

클래스 경로에 스프링 jars가 일치하지 않는 버전이있을 수 있습니다.

모든 스프링 용기는 동일한 버전이어야합니다. -verbose을 사용하여 클래스로드 활동 (및로드 된 jar)을 볼 수 있습니다. GenericsHelper에 종속 된 예외를 받기 직전에로드되는 클래스가 될 가능성이 큽니다.

+0

저는 스프링 코어 스프링 콩을 사용하고 있습니다. 버전 4.3.2의 스프링 컨텍스트. –

+0

3 개 모두 버전 측면에서 동일합니다. 하나 더, 스프링 구성 파일에서 모든 구성을 변경해야합니까? 너무. –

+0

예,하지만 그 클래스의 버전을로드하려고 시도하는 중입니다. 스프링이 아니라면 라이브러리 항아리 나 코드에서 직접 다른 클래스 여야합니다. '-verbose'는 어떤 것을 찾는데 도움이 될 것입니다. –

관련 문제