2011-08-06 33 views
1

我的項目對bean/service配置使用spring和spring-dm。當我嘗試導入也使用DI的舊項目時,不會創建bean。有沒有一種診斷春豆/服務創建問題的好方法?

一個例子作出明確,

予先在限定一個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,我定義一些控制器豆網址爲像/測試/ abc.do

在eclipse中啓動OSGi框架時沒有發生錯誤。 但是,當我嘗試訪問URL(/test/abc.do)時,「未知的OSGi URL:」被滿足。

這個問題讓我很困惑,我不清楚從哪裏開始。我的bundle依賴於spring bundle,並且有appContext.xml和dispatcher.xml。只是一個正常的春季使用情況。由於春天看起來像黑匣子,我只能嘗試其他可能的原因,我可以想,但直到現在還沒有修復它。有人知道如何監控春季啓動過程或有用的日誌嗎?

謝謝。

編輯使用spring-dm時,需要創建一個新的片段,包括log4j.properties以啓用日誌記錄。這可以幫助你跟蹤彈簧啓動錯誤。

正如我在第一次回答解釋,根本原因是發現兩個選擇,

  1. 對於那些束同時存在於工作區和目標平臺,在當前工作區中增加包的版本。當發生錯誤時,您還應該查看依賴項包
  2. 刪除目標平臺中的高版本捆綁軟件。
+0

有人可以提出一些建議嗎? – Ivan

+0

你沒有提供足夠的信息給任何人提供幫助。你談論一個「網址映射」。什麼樣的映射?你如何試圖訪問它,你爲什麼期望它首先可用? –

+0

@Ryan,我想知道是否有一種診斷春豆創建問題的一般方法。關於我的問題,我在問題部分進行了更新以澄清問題。是的,我訪問URL(/test/abc.do),並且「Unknown URL」被滿足。 從我對spring的使用中,通過在bundle中定義一個經過驗證的spring配置文件,然後在spring ENV中運行該bundle,Spring將處理所有後端工作。所以我希望成功訪問URL。 – Ivan

回答

2

您是否嘗試過設置彈簧框架的日誌級別進行調試?

E.g.

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

這始終是我嘗試診斷bean創建問題時的第一個出發點。

+0

是的,我創建了一個片段來附加log4j屬性。然後我可以看到春天的日誌信息。我們使用相同的方式,對吧? – Ivan

+1

日誌是否顯示創建上下文有任何問題? – beny23

+0

是的,創建OSGi服務時會顯示一些NPE異常。我使用spring 2.5.5和spring-osgi 1.1.0。我嘗試導入spring源代碼,創建導出包時發生了NPE。但是,我的bundle顯式導出包。它真的讓我困惑。但是,如果您多次刷新工作區,NPE可能會消失。所以這非常棘手。 – Ivan

相關問題