2013-08-09 15 views
7

Używam adnotacji do dynamicznego tworzenia fasoli, otrzymuję następujące błędy.Nie znaleziono klasy przy użyciu javaConfig

package demoproject; 

import org.springframework.context.annotation.Bean; 
import org.springframework.context.annotation.Configuration; 
@Configuration 
public class ProductFactory { 

    public ProductFactory() { 
     // TODO Auto-generated constructor stub 
    } 

    @Bean 
    public Product josh(){ 
     Product josh = new Battery(); 
     josh.setId("cdrw"); 
     josh.setPrice(100); 
     return josh; 
    } 
} 

web.xml

<!-- Bean for JavaConfig --> 
    <bean class='demoproject.ProductFactory' /> 
    <!-- be sure to include the JavaConfig bean post-processor --> 
    <bean class="org.springframework.config.java.process.ConfigurationPostProcessor"/> 

dziennika Błąd

Exception in thread "main" org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.springframework.config.java.process.ConfigurationPostProcessor] for bean with name 'org.springframework.config.java.process.ConfigurationPostProcessor#0' defined in class path resource [web.xml]; nested exception is java.lang.ClassNotFoundException: org.springframework.config.java.process.ConfigurationPostProcessor 
    at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1275) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:575) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1344) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:910) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:607) 
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479) 
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139) 
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83) 
    at demoproject.ProductCreater.main(ProductCreater.java:31) 
Caused by: java.lang.ClassNotFoundException: org.springframework.config.java.process.ConfigurationPostProcessor 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at org.springframework.util.ClassUtils.forName(ClassUtils.java:260) 
    at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:416) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1296) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1267) 
    ... 9 more 

Skąd mogę wiedzieć, co jest przyczyną błędu, a jest jakaś poprawka mogę spróbować tego?

+0

Got to ja nigdzie nie powiedziano wiosna szukać adnotacji i skanowanie themy pakiet –

Odpowiedz

0

Nie masz spring-core w swojej ścieżce klas środowiska wykonawczego. Musisz go dodać za pomocą odpowiedniej techniki do układu projektu, na przykład dodając go do Maven POM, jak sugeruje Simon.

+0

Usunięto komentarz, gdyż jest on bardzo podobny do innego pytanie i myślę, że przerobione że nieco na wiosnę 3. Oczywiście mógł używać starszej wersji Springa. –

+0

Wciąż używa konfiguracji opartej na XML, więc nie ma żadnych informacji. – chrylis

+0

To jest wiosna 3.2. Próbowałem z zaakceptowaną odpowiedzią oznaczoną jako zaakceptowaną w duplikacie pytania. teraz otrzymuję "Brak fasoli o nazwie" josh "jest zdefiniowany" –

16

od wiosny na 3.0, nie trzeba org.springframework.config.java.process.ConfigurationPostProcessor więcej, po prostu zdefiniować klasę Java-config jako fasoli w XML-config.

<bean class="demoproject.ProductFactory" /> 

spróbować usunąć

<bean class="org.springframework.config.java.process.ConfigurationPostProcessor"/> 
+0

Używam wiosny 3.2. Ten sam błąd, który mówi, że bean josh nie jest zdefiniowany –

+0

Dzięki. Otrzymałem nieaktualne informacje, dopóki nie zobaczę tego postu. – tonga

+0

dlaczego nie jest aktualizowany na wiosnę dokumentacji – kaissun

Powiązane problemy