스프링 webapp (spring 3.1)에서이 오류가 발생하며 이유를 알지 못합니다. 오류가 사라 아래 I 클래스에 주석 @Cacheable
을 언급하는 경우스프링 캐시 및 aspectj가있는 NoClassDefFoundError
org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.NoClassDefFoundError: mypackage/TestCache$AjcClosure1
는
합니다 ($AjcClosure1
이상한입니다).
public class TestCache {
@Cacheable(value ="myCache")
public List<String> getDummyList(){
Logger l = Logger.getLogger(this.getClass());
l.error("calling getDummyList");
ArrayList<String> foo = new ArrayList<String>();
foo.add("foo");
foo.add("bar");
return foo;
}
}
내 컨트롤러 클래스 (간체) :
@Controller
@RequestMapping("/mypage")
public class MyController {
@RequestMapping
public String index(ModelMap model, Locale locale) {
TestCache tc = new TestCache();
...
}
}
응용 프로그램 컨텍스트 (전용 캐시 부분) :
<cache:annotation-driven mode="aspectj"/>
<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager" p:cache-manager-ref="ehcache"/>
<bean id="ehcache" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean" p:config-location="classpath:ehcache.xml"/>
나는 프록시 모드 에러가 덜하지만에 프록시와 AspectJ의 모드 (시도 캐시가 아무 것도하지 않음)
이 웹 응용 프로그램은 처음에는 roo로 만들어졌으며 mv c와 웹 플로우. 따라서 applicationContext.xml 또는 webmvc-config.xml에는 꽤 많은 xml이 있습니다 (일부 콩이 무엇을하는지 이해할 수 없습니다). 내가 m2e-WTP와 일식의 wepapps를 실행하고하고 pom.xml 파일은 플러그인 AspectJ를-받는다는 - 플러그인을 사용하고 있습니다 (그러나 그것은 무엇을 어떤 아이디어)
문제가 AspectJ의와 관련이 마치, 하지만 aspectJ는 사용하지 않았습니다. spring/java/aspectj 전문가가이 오류를 만드는 이유와 캐시를 작동시키는 방법을 설명 할 수 있다면 정말 멋져요! (튜토리얼 만 있지만 캐시 가능한 주석을 사용하는 샘플 프로젝트는 찾을 수 없다).
나는 http://stackoverflow.com/questions/16283268/how-to-deploy-generated-resources-to-tomcat-with-m2e-wtp이 나에게 조금 도움이됩니다 – xmedeko