まず第一に、私はVirgoとOSGiの初心者であると言いたいので、しばらくお待ちください;)
これが私の問題です:「greenpages」持続バージョンで遊んでいます(http://www.eclipse.org/virgo/documentation/greenpages-documentation-2.4.0.RELEASE/docs/htmlsingle/greenpages-guide.html)サンプルプロジェクトと私は、jpaサブプロジェクトプロジェクトからwebサブプロジェクトに渡すオブジェクトを変更したいと思います。私の変更は次のようになります。
<osgi:service ref="directory" interface="greenpages.jpa.JpaDirectory"/>
それ以外の
<osgi:service ref="directory" interface="greenpages.Directory"/>
およびWebプロジェクトのコンテキスト:
<osgi:reference id="directory" interface="greenpages.jpa.JpaDirectory" />
ここで、Directoryはインターフェースであり、JpaDirecotryは実装であるため、私のWebコントローラーでは、次のようなものが必要です。
@Controller
public class GreenPagesController {
@Autowired
private JpaDirectory directory;
....
}
JpaDirectoryクラスアクセサーをデフォルトから「パブリック」に変更することを余儀なくされました。しかし、それでもエラーが発生します。
[2013-03-10 13:51:59.047]エラーstart-signalling-11 org.springframework.web.context.ContextLoaderコンテキストの初期化に失敗しましたorg.springframework.beans.factory.BeanCreationException:「ディレクトリ」という名前のBeanの作成中にエラーが発生しました:初期化Beanの失敗; ネストされた例外はorg.springframework.beans.TypeMismatchExceptionです:タイプ'java.lang.String'のプロパティ値をプロパティ'interfaces'に必要なタイプ'java.lang.Class[]'に変換できませんでした。ネストされた例外はjava.lang.IllegalArgumentExceptionです:クラス[greenpages.jpa.JpaDirectory]が見つかりません
どうやってそれを処理するのか分かりません。多分誰かが私にそれをどうするかアドバイスすることができます。