在整合 Spring、Struts2、Hibernate (SSH) 專案時,啟動容器常遇到以下異常堆疊:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource'... nested exception is java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorldException
Spring AOP 底層依賴 AspectJ 的織入器類別,專案類路徑中缺少 aspectjweaver.jar,導致類別載入失敗。
在專案依賴中加入 aspectjweaver.jar:
pom.xml 添加依賴
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.x</version> <!-- 對應 Spring 版本選擇 -->
</dependency>
aspectjweaver.jar 放入 WEB-INF/lib 或類路徑此 JAR 為 Spring AOP 實現(特別是基於 @AspectJ 註解的切面支援)的核心依賴。若專案使用 Spring 的聲明式事務(@Transactional)、AOP 切面程式設計,皆需此依賴。
版本選擇建議與 Spring Framework 版本對應,避免版本衝突導致其他異常。