2016-08-10 17 views
1

私のプロジェクト構造はRest(Rest APIとそのImplementaionクラスが配置される)、Service API(サービスインタフェースが定義される)、Service ImplどのサービスAPIの実装が配置されているか)。私のコードPersonalInfoServiceImplPersonalInfoRequestBeanの値をPersonalInfoResponseBean(+いくつかのプロパティ)オブジェクトに設定し、返すのはです。それは正常に動作していた。しかし、さらにいくつかのインターセプターとの統合後、今突然、私はこのコードでは、次のエラーを取得開始しました:java.lang.LinkageError:ローダー制約違反。 (サービスクラスで)インタフェースメソッドを解決するとき

Caused by java.lang.LinkageError: loader constraint violation: when resolving 
interface method "personal.info.service.api.PersonalInfoService.getPersonalInfoDetails(Lcom//personal/info/model/PersonalInfoRequestBean;)Lpersonal/info/model/PersonalInfoResponseBean;" 
the class loader (instance of org/apache/felix/framework/BundleWiringImpl$BundleClassLoaderJava5) 
of the current class, personal/info/rest/impl/PersonalInfoRESTServiceImpl, 
and the class loader (instance of org/apache/felix/framework/BundleWiringImpl$BundleClassLoaderJava5) 
for the method's defining class, personal/info/service/api/PersonalInfoService, 
have different Class objects for the type personal/info/model/PersonalInfoRequestBean 
used in the signature at personal.info.rest.impl.PersonalInfoRESTServiceImpl.getPersonalInfoDetail(PersonalInfoRESTServiceImpl.java:112) 

誰かがこの問題で私を助けることができます?。私たちはサービスを展開するためにApache karafを使用しています。したがって、karaf/delpoyment/maven依存関係に関連する場合、この問題をデバッグする方法は何ですか。

答えて

0

このエラーメッセージは、異なるクラスローダーで2つの読み込み済みクラスがあることを意味します。personal/info/model/PersonalInfoRequestBean これらのクラスローダの1つは、インターフェイスPersonalInfoServiceとその他のロード実装PersonalInfoRESTServiceImplをロードします。 これは避けてください。クラスpersonal/info/model/PersonalInfoRequestBeanは、インターフェースを読み込むクラスローダーによってのみ定義されるべきです。

関連する問題