2013-02-02 18 views
5

Applicazione SpringMVC che utilizza gli ultimi contenitori. Ho passato qualche tempo cercando di capire il problema in mancanza di questo post. Apprezzare se si può rispondere se qualcuno ha affrontato questo problemaNoUniqueBeanDefinitionException anche se non sono stati trovati duplicati

errore di stack

INFO : org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from ServletContext resource [/WEB-INF/spring/appServlet/servlet-context.xml] 
INFO : org.springframework.context.annotation.ClassPathBeanDefinitionScanner - JSR-330 'javax.inject.Named' annotation found and supported for component scanning 
Feb 2, 2013 6:07:17 PM org.apache.catalina.core.ApplicationContext log 
SEVERE: StandardWrapper.Throwable 
java.lang.NoClassDefFoundError: org/springframework/beans/factory/NoUniqueBeanDefinitionException 
    at java.lang.Class.getDeclaredMethods0(Native Method) 
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2427) 
    at java.lang.Class.getDeclaredMethods(Class.java:1791) 
    at org.springframework.core.type.StandardAnnotationMetadata.hasAnnotatedMethods(StandardAnnotationMetadata.java:159) 
    at org.springframework.context.annotation.ConfigurationClassUtils.isLiteConfigurationCandidate(ConfigurationClassUtils.java:106) 
    at org.springframework.context.annotation.ConfigurationClassUtils.checkConfigurationClassCandidate(ConfigurationClassUtils.java:87) 
    at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:233) 
    at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:203) 
    at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:617) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:446) 
    at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:631) 
    at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:588) 
    at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:645) 
    at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:508) 
    at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:449) 
    at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:133) 
    at javax.servlet.GenericServlet.init(GenericServlet.java:160) 
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1274) 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1186) 
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1081) 
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5033) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5320) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:138) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
    at java.lang.Thread.run(Thread.java:662) 
Caused by: java.lang.ClassNotFoundException: org.springframework.beans.factory.NoUniqueBeanDefinitionException 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559) 
    ... 30 more 
Feb 2, 2013 6:07:17 PM org.apache.catalina.core.StandardContext loadOnStartup 
SEVERE: Servlet /springmvc threw load() exception 
java.lang.ClassNotFoundException: org.springframework.beans.factory.NoUniqueBeanDefinitionException 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559) 
    at java.lang.Class.getDeclaredMethods0(Native Method) 
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2427) 
    at java.lang.Class.getDeclaredMethods(Class.java:1791) 
    at org.springframework.core.type.StandardAnnotationMetadata.hasAnnotatedMethods(StandardAnnotationMetadata.java:159) 
    at org.springframework.context.annotation.ConfigurationClassUtils.isLiteConfigurationCandidate(ConfigurationClassUtils.java:106) 
    at org.springframework.context.annotation.ConfigurationClassUtils.checkConfigurationClassCandidate(ConfigurationClassUtils.java:87) 
    at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:233) 
    at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:203) 
    at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:617) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:446) 
    at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:631) 
    at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:588) 
    at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:645) 
    at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:508) 
    at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:449) 
    at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:133) 
    at javax.servlet.GenericServlet.init(GenericServlet.java:160) 
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1274) 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1186) 
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1081) 
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5033) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5320) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:138) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
    at java.lang.Thread.run(Thread.java:662) 

file di context.xml.

<?xml version="1.0" encoding="UTF-8"?> 
    <beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:aop="http://www.springframework.org/schema/aop" 
     xmlns:context="http://www.springframework.org/schema/context" 
     xmlns:jee="http://www.springframework.org/schema/jee" 
     xmlns:lang="http://www.springframework.org/schema/lang" 
     xmlns:p="http://www.springframework.org/schema/p" 
     xmlns:tx="http://www.springframework.org/schema/tx" 
     xmlns:util="http://www.springframework.org/schema/util" 
     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd 
      http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd 
      http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd 
      http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang.xsd 
      http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd 
      http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"> 

     <context:annotation-config /> 
     <context:component-scan base-package="com.srisris.springmvc" /> 

     <bean id="jspViewResolver" 
      class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
      <property name="viewClass" 
       value="org.springframework.web.servlet.view.JstlView" /> 
      <property name="prefix" value="/WEB-INF/jsp/" /> 
      <property name="suffix" value=".jsp" /> 
     </bean> 

     <bean id="messageSource" 
      class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> 
      <property name="basename" value="classpath:messages" /> 
      <property name="defaultEncoding" value="UTF-8" /> 
     </bean> 
     <bean id="propertyConfigurer" 
      class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" 
      p:location="/WEB-INF/jdbc.properties" /> 

     <bean id="dataSource" 
      class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" 
      p:driverClassName="${jdbc.driverClassName}" 
      p:url="${jdbc.databaseurl}" p:username="${jdbc.username}" 
      p:password="${jdbc.password}" /> 


     <bean id="sessionFactory" 
      class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 
      <property name="dataSource" ref="dataSource" /> 
      <property name="configLocation"> 
       <value>classpath:hibernate.cfg.xml</value> 
      </property> 
      <property name="configurationClass"> 
       <value>org.hibernate.cfg.AnnotationConfiguration</value> 
      </property> 
      <property name="hibernateProperties"> 
       <props> 
        <prop key="hibernate.dialect">${jdbc.dialect}</prop> 
        <prop key="hibernate.show_sql">true</prop> 
       </props> 
      </property> 
     </bean> 

     <tx:annotation-driven /> 

     <bean id="transactionManager" 
      class="org.springframework.orm.hibernate3.HibernateTransactionManager"> 
      <property name="sessionFactory" ref="sessionFactory" /> 
     </bean> 


    </beans> 

risposta

13

Non NoUniqueBeanDefinitionException è essere gettato, è:

ClassNotFoundException: org.springframework.beans.factory.NoUniqueBeanDefinitionException 

prega di aggiungere spring-beans-3.2.1.RELEASE.jar nel vostro CLASSPATH. Si noti che questa classe è stata introdotta nella versione 3.2.1 (la maggior parte fresca per il momento). Assicurati che tutti i tuoi JAR di primavera siano nella stessa versione.

+0

Oops hai ragione. Avevo una vecchia versione del barattolo e non aveva quella specifica classe di eccezione – srisris

+0

hey tomasz, ho fatto menzione di 3.2.1.RELEASE nel mio pom.xml, ma continuo a ricevere questo errore. Per favore aiutami con questo. – Rajkumar

0

ho affrontato stessa eccezione (org/springframework/beans/factory/NoUniqueBeanDefinitionException) è risolto aggiungendo seguente dipendenza Maven per spring-beans.3.2.2.RELEASE

In this link you will find more data

0

ho avuto la stessa eccezione durante l'esecuzione a livello locale spring petclinic sample.

Dopo la navigazione i problemi che ho trovato this one : issue 28

La soluzione era quella di utilizzare maven3 doc invece di maven2!

Spero che questo possa essere d'aiuto.

Problemi correlati