2011-08-06 2 views
1

나의 프로젝트는 bean/service 설정을 위해 spring과 spring-dm을 사용한다. DI 용 스프링을 사용하는 오래된 프로젝트를 가져 오려고하면 빈이 생성되지 않습니다. 내가 처음에 URL-별명을 정의스프링 빈/서비스 생성 문제를 진단하는 좋은 방법이 있습니까?

명확하게하기 위해 예, 스프링 appContext.xml이

<bean name="xxxx" class="XRegistry" init-method="init"> 
    <property name="webRoot" value="/WebContent"></property> 
    <property name="alias" value="/test"></property> 
    <property name="cAliasPattern" value="/test/*.do" /> 
    <property name="conConfigFile" value="ddd.xml"/> 
</bean> 

이 ddd.xml에, 내가 좋아하는 URL과 일부 컨트롤러 bean을 정의/테스트/abc.do

eclipse에서 OSGi 프레임 워크로 시작할 때 오류가 발생하지 않습니다. 그러나 URL (/ 테스트/abc.do)에 액세스하려고하면 "알 수없는 OSGi URL :"이 충족됩니다.

정말 혼란스러워하는 문제는 어디서부터 시작해야할지 분명하지 않다는 것입니다. 내 번들은 스프링 번들에 의존하고 있으며 appContext.xml과 dispatcher.xml을 가지고있다. 그냥 일반적인 봄 사용 시나리오.

봄이 내게 검은 상자처럼 보일 때, 나는 생각할 수있는 다른 가능한 이유를 시도 할 수 있지만 지금까지는 고쳐지지 않았습니다. 누군가가 봄 시작 프로세스 또는 유용한 로그를 모니 터하는 방법을 알고 있습니까?

감사합니다.

spring-dm을 사용할 때 log4j.properties를 포함하여 새 조각을 만들어 로깅을 활성화해야합니다. 이것은 스프링 시작 오류를 추적하는 데 도움이 될 수 있습니다.

내가 1 대답 설명으로

는 근본 원인은, 모두 작업 공간 및 대상 플랫폼에 존재하는 현재 작업 공간에 번들의 버전을 증가 두 가지 선택, 그 번들

  1. , 발견된다. 오류가 발생하면 종속 번들도 조사해야합니다.
  2. 대상 플랫폼에서 상위 버전 번들을 제거하십시오.
+0

누군가 제안 할 수 있습니까? – Ivan

+0

도움을 줄 수있는 사람이 충분한 정보를 제공하지 않았습니다. 당신은 "URL 매핑"에 대해 이야기합니다. 어떤 종류의 매핑입니까? 어떻게 액세스하려고합니까? 그리고 처음에 액세스 할 수있는 이유는 무엇입니까? –

+0

@ 라이언, 스프링 빈 생성 문제를 진단하는 일반적인 방법이 있는지 궁금합니다. 내 문제에 관해서는 문제를 명확히하기 위해 질문 섹션에서 업데이트했습니다. 예, URL (/ 테스트/abc.do)에 액세스하고 '알 수없는 URL'을 충족합니다. 필자의 봄 사용에서 유효성이 검사 된 스프링 구성 파일을 번들로 정의한 다음 봄 ENV에서 번들을 실행하면 스프링이 모든 백엔드 작업을 처리합니다. 따라서 URL에 성공적으로 액세스 할 것으로 예상됩니다. – Ivan

답변

2

스프링 프레임 워크의 로그 수준을 디버깅하도록 설정 했습니까?

예.

log4j.rootLogger=WARN, stdout 
[...] 
log4j.logger.org.springframework=DEBUG 

빈 작성과 관련된 문제를 진단 할 때 항상 처음 시작점입니다.

+0

예, 나는 log4j 특성을 첨부 할 단편을 작성합니다. 그러면 스프링 로그 정보를 볼 수 있습니다. 우리는 똑같은 방식으로 사용하고 있습니다. – Ivan

+1

로그에 컨텍스트를 만드는 데 문제가 있습니까? – beny23

+0

예, OSGi 서비스를 만들 때 일부 NPE 예외가 표시됩니다. 나는 봄 2.5.5와 봄 - osgi 1.1.0을 사용하고 있습니다. 스프링 소스 코드를 가져 오려고했는데 수출 패키지를 만들 때 NPE가 발생했습니다. 그러나 내 번들은 패키지를 명시 적으로 내 보냅니다. 그것은 정말로 나를 혼란스럽게합니다. 그러나 작업 공간을 여러 번 새로 고치면 NPE가 사라질 수 있습니다. 그래서 정말 까다 롭습니다. – Ivan