0

私の春のmvc+hibernate + annotationsプロジェクトでは、これら3つのクラスがあります

UserServiceImpl.java

@Service("userService")  
public class UserServiceImpl implements UserService {  
@Autowired  
private UserDAO userDAO;  
//other codes  
}  

UserDAOImpl.java

@Repository("userDAO")  
public class UserDAOImpl implements UserDAO {  
@Autowired  
private SessionFactory sessionFactory;  
//other codes  
}  

RegistrationController.java

@Controller  
@RequestMapping("/registration.htm")  
public class RegistrationController {  
@Autowired  
private UserService userService;  
//other codes  
}  

私のdispatcher-servlet.xmlに、次のものを追加しました

<context:annotation-config />  
<context:component-scan base-package="com.alw.controllers,com.alw.DAOs,com.alw.services" />  

<bean id="sessionFactory"  
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">  

プロジェクトを実行すると、次の例外が発生しました。

Error creating bean with name 'registrationController':  
Injection of autowired dependencies failed;  
nested exception is org.springframework.beans.factory.BeanCreationException:  
Could not autowire field: private com.alw.services.UserService  
    com.alw.controllers.RegistrationController.userService;  

Error creating bean with name 'sessionFactory' defined in ServletContext resource  
    [/WEB-INF/dispatcher-servlet.xml]:  
Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError:  
    org/apache/commons/pool/impl/GenericObjectPool  

誰かが私が欠けている場所を指摘できますか?
これは今日私の一日を過ごしました。

編集:
commons.poolを追加しましたが、結果がありません。
これらの例外のセットがあります。

Error creating bean with name 'registrationController':  
Error creating bean with name 'userService':  
Error creating bean with name 'userDAO':  
Error creating bean with name 'sessionFactory' defined in ServletContext  
    resource [/WEB-INF/dispatcher-servlet.xml]:  
Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError:  
Could not initialize class org.hibernate.cfg.AnnotationConfiguration  

ありがとう....

4

2 に答える 2

0

duffymoが指摘しているように、クラスパスにコモンプールがありません。もう1つの問題として、エラー1エラー2が発生した場合、異なる時間に2つの無関係なエラーが発生したのでしょうか、それともエラー2が原因でエラー1が発生したのでしょうか。同時にログに記録します。おそらく同じものであり、2番目が最初の原因です。

一方、DispatcherServletに属するコンテキストにすべてのサービスBeanを配置するというよくある間違いを犯しています。ルートコンテキストでBeanも宣言している場合は、それも問題を引き起こしている可能性があります。Spring MVCアプリのルートコンテキストと子コンテキストの違いを理解するには、この他の回答とそれにリンクされた回答を参照してください。

DispatcherServletが別のアプリケーションコンテキストを作成するのはなぜですか?

特に:

Spring-MVC:「コンテキスト」と「名前空間」とは何ですか?

于 2012-05-31T12:10:51.733 に答える
0

2 つ目は簡単です。CLASSPATH に含まれる JAR がありませんorg.apache.commons.pool.impl.GenericObjectPool

問題は、どのクラス ローダーかということです。Java EE アプリケーション サーバーには、クラス ローダーの階層があります。その JAR をサーバーの /lib ディレクトリに追加して、接続プールがセットアップされたときに使用できるようにすることをお勧めします。

最初のものは私には明らかではありません。基本パッケージを「com.alw」に変更してみて、問題が解決するかどうかを確認してください。

于 2012-05-31T11:54:55.793 に答える