2012-05-10 25 views
0

私はMavenプロジェクトのための快適なデザイン、ユーザークラスを持つドメイン層、CRUD機能を備えたサービスを備えたデータレイヤー、コントローラクラスを持つウェブレイヤーを持っています。@Autowiredアノテーションがスプリングで正常に動作していません

javax.servlet.ServletException: Servlet.init() for servlet appServlet threw exception 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
........ 
java.lang.Thread.run(Thread.java:680) 


root cause 

    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userController': Injection of autowired dependencies failed; nested    
    exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: ........service.UserService org. 
    bk.samples.mvc.UserController.userService; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [se. 
    datalayer.guards.service.UserService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency 
    annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} 
    org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225) .......... 

root cause 

org.springframework.beans.factory.BeanCreationException: Could not autowire field: .........service.UserService 
org.bk.samples.mvc.UserController.userService; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type 
[se.datalayer.guards.service.UserService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency 
annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} .......... 

root cause 

org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [.........service.UserService] found for dependency: 
expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: 
{@org.springframework.beans.factory.annotation.Autowired(required=true)} 
    org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:924) 
    org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:793) ....... 
その後

私は@Autowired注釈を削除しますが、以下のエラーました:

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.NullPointerException 
     org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:894) 
     org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778) 
     javax.servlet.http.HttpServlet.service(HttpServlet.java:621) 
     javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 

    root cause 

    java.lang.NullPointerException 
     org.bk.samples.mvc.UserController.allUsers(UserController.java:32) 
     sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method).......... 

マイuserControllerクラスは次のとおりです。

@Controller 
@RequestMapping(value="/") 
public class UserController 
{ 
    @Autowired 
    UserService userService; 

    @RequestMapping(value="/users", method=RequestMethod.GET) 
    public ModelAndView allUsers() 
    { 

    ModelAndView mvd= new ModelAndView(); 
    Collection<User> allUsers= new ArrayList<User>(); 
    allUsers= userService.findAllUsers(); 
    System.out.println(allUsers); 
    mvd.addObject("allUsers", allUsers); 
    return mvd; 
    } 
}   

私はプロジェクトを実行するときしかし、私はエラーを以下の取得します私は問題の原因を知りませんし、何か助けていただければ幸いです。

+1

私はそれがどのような問題であるかわかりません。注釈はコンパイル時には見られず、実行時には見られます。このエラーは主に、 'UserService'クラスが定義されている依存関係成果物がないことを示しています。 – CoolBeans

+1

一歩前進してください。注釈を削除するだけで、まだ作業している環境に精通していないようなサウンドが期待できます。 Mavenはこの問題とは関係がありませんでした。 –

+0

それはメイヴンの問題ではありませんが、誰かが私を助けて感謝するなら、私は助けが必要です。 – user1067665

答えて

0

これはMavenとは関係ありません。 Springの設定に問題があります。これはUserService型のSpring Beanが定義されていないことを示しているため、(@Autowiredアノテーションで表現された)UserServiceを持つことに依存するため、コントローラBeanを作成できません。 overview of the Spring containerおよび/またはSpring MVC frameworkをご覧ください。

+0

さて、タイトルはそれほど良いものではないかもしれませんが、誰かが問題を理解するのを助けることができますか? – user1067665

+0

私はあなたの質問に答えました。あなたのコントローラに注入できるUserService Beanがありません。また、私がリンクしている資料は、プロジェクトの仕組みを理解するのを手助けすることで問題を把握するのに役立ちます。 –

0

webappに春設定が間違っている可能性があります.Mavenとは関係ありません。あなたがブートストラップする春のどこにいても、webappの設定は含まれていますが、データ層の春の豆は含まれていないでしょう。

+0

みなさんこんにちは。私はMavenについて何も悲しんでいなかったし、問題は問題だった。私はちょうど問題の原因とそれに依存することができるかどうか尋ねました。私がメインメソッドを使用しているとき、コントローラではうまく動作していません。 – user1067665

+0

Mavenが問題の一部であると思わない場合は、おそらくMavenタグを質問から削除する必要があります。それが原因でMavenを見ていると思ったのです。問題を解決するために、それはまだ春の構成の問題のように聞こえる。 webappのアプリケーションコンテキストコンフィグレーションに何か不足しているので、userService beanをどこで定義し、webappのSpringコンフィグレーションに含まれているかを確認してください。 – digitaljoel

関連する問題