4

私のプロジェクトでは、Bean/サービスの構成に spring と spring-dm を使用しています。DI に spring を使用する古いプロジェクトをインポートしようとすると、Bean が作成されません。

明確にする例として、

最初に spring-appContext.xml で url-alias を定義します

<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 で、/test/abc.do のような URL を持ついくつかのコントローラー Bean を定義します。

Eclipse で OSGi フレームワークとして起動してもエラーは発生しません。しかし、その URL(/test/abc.do) にアクセスしようとすると、"不明な OSGi URL :" に遭遇します。

問題は私を本当に混乱させます。私のバンドルはSpringバンドルに依存しており、appContext.xmlとdispatcher.xmlがあります。通常の春の使用シナリオです。

春はブラックボックスのように見えるので、考えられる他の理由を試すことしかできませんが、今まで修正していません。春の起動プロセスまたは役立つログを監視する方法を知っている人はいますか?

ありがとう。

spring-dm を使用する場合は編集します。ログを有効にするには、log4j.properties を含む新しいフラグメントを作成する必要があります。これは、春の起動エラーを追跡するのに役立ちます。

最初の回答で説明したように、根本原因が見つかり、2 つの選択肢があり、

  1. これらのバンドルがワークスペースとターゲット プラットフォームの両方に存在する場合は、現在のワークスペースでバンドルのバージョンを増やします。エラーが発生した場合は、依存関係バンドルも調べる必要があります
  2. ターゲット プラットフォームの上位バージョン バンドルを削除します。
4

1 に答える 1

4

Spring フレームワークをデバッグするためのログ レベルを設定してみましたか?

例えば

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

これは、Bean 作成の問題を診断しようとするときの最初の出発点です。

于 2011-08-10T07:26:53.893 に答える