2016-08-27 25 views
-2

org.springframework.beans.factory.NoSuchBeanDefinitionException:[com.library.service]タイプの適格なBeanがありません。 BookService]が依存関係のために見つかりました:この依存関係のautowire候補となる少なくとも1つのbeanが必要です。依存関係注釈:{@ org.springframework.beans.factory.annotation.Autowired(必須= true)} org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:988) org.springframework.beans。 factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:858) org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:770) org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor $ AutowiredFieldElement。注射(AutowiredAnnotationBeanPostProcessor.java:486) org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87) org.springframework.beans.factory.annotation.AutowiredAnnot ationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:285) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1116) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java: 519) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458) org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:295) org.springframework。 beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223) org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(Abs tractBeanFactory.java:292) org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:628) ORG .springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932) org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479) org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet org.springframework.web.servlet.FrameworkServlet.c reateWebApplicationContext(FrameworkServlet.java:665) org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:518) org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:459) org.springframework .web.servlet.HttpServletBean.init(HttpServletBean.java:136) javax.servlet.GenericServlet.init(GenericServlet.java:158) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956) org.apache.catalina.connector.CoyoteAdapter.service( CoyoteAdapter.java:423) または(AbstractProtocol.java:625) org.apache.tomcat.util.net.AprEndpoint $ SocketProcessor.doRun(AprEndpoint.java:2522) org.apache.tomcat.util.net.AprEndpoint $ SocketProcessor.run(AprEndpoint.java:2511) java.util.concurrent.ThreadPoolExecutor。runWorker(不明なソース) java.util.concurrent.ThreadPoolExecutor $ Worker.run(不明なソース) org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run(TaskThread.java:61) java.lang.Thread .RUN(不明なソース)NoSuchBeanDefinitionException:[com.library.service.BookService]タイプの適格なBeanが依存関係に見つかりませんでした。少なくとも1つのbeanが必要です。

****マイライブラリ-servlet.xml ****

<!-- Use @Component annotations for bean definitions --> 
<context:component-scan base-package="com.library" /> 

<mvc:annotation-driven /> 

<!-- View resolver --> 
<bean 
    class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <property name="prefix"> 
     <value>/WEB-INF/jsp/</value> 
    </property> 
    <property name="suffix"> 
     <value>.jsp</value> 
    </property> 
</bean> 

<!-- TX --> 

<bean id="global-tm" class="org.springframework.orm.jpa.JpaTransactionManager"> 
    <property name="entityManagerFactory" ref="global-em" /> 
</bean> 

<!-- Entity Manager --> 
<bean id="global-em" 
    class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" 
    p:packagesToScan="com.library.entity" p:dataSource-ref="dataSource" 
    p:jpaVendorAdapter-ref="jpaVendorAdapter" /> 

<bean id="jpaVendorAdapter" 
    class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> 
    <property name="showSql" value="false" /> 
    <property name="generateDdl" value="false" /> 
    <property name="databasePlatform" value="${jpa.hibernate.dialectClass}" /> 
</bean> 

<!-- Transaction --> 

<tx:annotation-driven transaction-manager="global-tm" /> 

<bean id="dataSource" 
    class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
    <property name="driverClassName" value="com.mysql.jdbc.Driver" /> 
    <property name="url" value="jdbc:mysql://localhost:3306/library" /> 
    <property name="username" value="root" /> 
    <property name="password" value="root" /> 
</bean> 

私のweb.xml

<!-- The front controller of this Spring Web application, responsible for 
    handling all application requests --> 
<servlet> 
    <servlet-name>Library</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/Library-servlet.xml</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<!-- Map all requests to the DispatcherServlet for handling --> 
<servlet-mapping> 
    <servlet-name>Library</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 

<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>classpath:jpaContext.xml</param-value> 
</context-param> 

<listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 

<display-name>Archetype Created Web Application</display-name> 

私のコントローラ

@Autowired 
BookService bookService; 

private static final Logger LOG = Logger.getLogger(BookController.class); 

@RequestMapping(value = "/bookEntry") 
public String bookEntry(Model model) { 
    LOG.info("Displaying book entry form"); 
    BookCommandForm bookCommandForm = new BookCommandForm(); 
    model.addAttribute(bookCommandForm); 
    String view = "BookEntry"; 
    return view; 
} 

@RequestMapping(value = "/bookSaved") 
public String saveBook(Model model, 
     @ModelAttribute("bookCommandForm") BookCommandForm bookCommandForm) { 
    LOG.info("New book Registration begins."); 
    BookDTO bookDTO = new BookDTO(); 
    bookDTO.setBookName(bookCommandForm.getBookName()); 
    bookDTO.setBookAuthor(bookCommandForm.getBookAuthor()); 
    bookDTO.setBookEdition(bookCommandForm.getBoookEdition()); 
    bookService.saveBook(bookDTO); 
    LOG.info("New book registered successfully."); 
    String view = "BookSaved"; 
    return view; 
} 
+1

'BookService.java'に' @Service'が付いていることを確認してください。 – Arpit

+0

解決に感謝します! –

答えて

1

私はBookService.javaため@Serviceを逃していました。

関連する問題