2011-01-04 3 views
2

Tapestry5 tapx template library을 사용하여 this example과 같은 html 이메일을 보내고 있습니다. 나는 다음과 같은 오류가 예제를 실행하면Tapestry5 : 인터페이스를 구현하는 서비스가 없습니다. org.springframework.context.ApplicationContext

: 태피스트리 스프링-5.1.05.jar 포함

Caused by: java.lang.RuntimeException: No service implements the interface org.springframework.context.ApplicationContext. 
     at org.apache.tapestry5.ioc.internal.RegistryImpl.getService(RegistryImpl.java:560) 
     at org.apache.tapestry5.ioc.internal.ObjectLocatorImpl.getService(ObjectLocatorImpl.java:44) 

모든 tapestry- * 항아리는 내 클래스 경로에 있습니다.

실종에 대한 단서가 있습니까?

+0

클래스 경로에도 스프링이 있습니까? – Henning

+0

예 ............ – Joel

+0

프로그램을 디버그 할 수있는 IDE를 사용하고 있습니까? 그렇다면이 클래스의 생성자를 중단 점으로 지정하십시오. https://svn.apache.org/repos/asf/tapestry/tapestry5/trunk/tapestry-spring/src/main/java/org/apache/tapestry5/spring/SpringModule. 그 봄이 initialising 것을 확인하는 자바. 그것이 실제로 클래스 패스에 있지 않을 가능성이 높습니다. – pstanton

답변

1

알아 냈어. SpringIOC은 클래스 패스에서 찾은 모든 모듈을로드한다. springModule (tapestry-spring.jar)은 ApplicactionContext 서비스를 초기화하려고 시도하는데, 이로 인해 문제가 발생합니다.

classpath에서 tapestry-spring.jar을 제거하면 문제가 해결됩니다.

0

웹 사이트의 지침을주의해서 따르십시오. 내 추측으로는 (TapestryFilter 대신) 특별한 TapestrySpringFilter를 사용하지 않는 것입니다.

이 코드를 살펴본 지 오래되었습니다. ApplicationContext가 서비스 또는 주사 가능한 객체로 공개되는지는 기억이 안납니다. 그것이 있어야하는 것처럼 보입니다.

+0

안녕하세요. Web Apps 용 TapestrySpringFilter를 사용하지 않습니까? tapx 템플릿 라이브러리를 사용하고 있습니다. HTML 이메일을 보내려면 Spring에 대한 필요성을 느끼지 못했습니다. – Joel

0

충분히 공정하게; 어떤 상황인지 확신 할 수 없지만 TapestrySpringFilter가 설정하는 측면에서 더 자세히 살펴보고 독립 실행 형 앱의 시작에 복제해야합니다. 몇 가지 특별한 부트 스트래핑 매직이 있습니다.

+0

감사합니다, 감사합니다! (Spring이나 T5 웹을 사용하지 않고 여전히 독립형 애플리케이션이라면 여전히 적용 되는가?) – Joel

관련 문제