2012-04-11 7 views
1

私は最初のSpringプロジェクトで作業していましたが、厄介な問題に遭遇しました。@Autowiredによって設定されたオブジェクトは、常にnull、その他はOKです。

<bean id="usernameService" class="service.UsernameService" scope="session" > 
    <aop:scoped-proxy /> 
</bean> 

と、このBeanが(私のクラスのいずれかで作成されたBean定義:)

を:

私はディスパッチャ-servlet.xmlでBeanとして構成された「UsernameService」と呼ばれるクラスを持っていますなど

<bean id="testController" class="controller.TestController" /> 

@Autowired 
UsernameService uns; 

それは絶対に正常に動作します。私がしようとすると別のクラス、LogControllerで同じことを行うときしかし、:

<bean id="logController" class="controller.LogController" /> 

それが動作しない、と私は次のエラーを取得:私が管理している

SEVERE: Servlet.service() for servlet [dispatcher] in context with path [/flexitime] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause java.lang.NullPointerException

(私は信じているが)このエラーは、unsが実際に設定/作成されることはなく、LogController内ではnullのままであるという事実に帰されます。

私はこれを広範囲に調査し、多くの「解決策」を見つけましたが、まだ誰も働いていません。

ありがとうございます! ジェームズ

+0

LogControllerにアクセスする方法。 @RequestMappingのメソッドがありますが、これはWebリクエストに応答して呼び出されますか、コードのどこかで新しいLogControllerを実行していますか? – gkamal

+0

注射が機能するために 'new'によってオブジェクトを作成することはできません。 –

+0

@gkamal LogControllerは別のコントローラからアクセスされ、それ自体は自動バインドされたBeanです: '@Autowired(new line)LogController ls'。私はクラスを初期化するために新しいキーワードを使用していません。 – ymhr

答えて

0

は、あなたのBeanにauto-wire属性を追加します。

<bean id="usernameService" class="service.UsernameService" scope="session" autowire="byName"> 
    <aop:scoped-proxy /> 
</bean> 
+0

それは私にエラーが表示されます: '属性 'default-autowire'が 'bean'の要素に表示されないようにしました – ymhr

+0

コードを一度チェックしてください –

+0

それを更新しました、残念ながら、仕事はありません。 – ymhr

関連する問題