私は、起動時にすべてのメッセージを2回取得し、Hibernateからの警告をEntity manager factory name is already registered
と言う警告メッセージを表示します。私はSpring、Hibernate、CXFを使用しています。私は私のセットアップがドキュメントに沿っているべきだと感じていますが、それは私が紛失しているものでなければなりません。 Spring MVCを指している類似のケースがたくさんあることがわかりましたが、それは私にとっては問題ではないと思います。私が持っている私のweb.xmlのエンティティマネージャーの工場名は既に登録されています
:
<listener>
<description>desc</description>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>
org.springframework.web.context.request.RequestContextListener
</listener-class>
</listener>
<servlet>
<servlet-name>cxf</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
私はWEB-INFに次き:
- applicationContext.xmlをのjava-config設定のための
@Configuration
クラスへのコンポーネントのスキャンで@Component
のコンポーネントスキャン。 - cxf-servlet.xmlコンポーネントスキャンもあります。
これは私が逃したものですか?
更新1: は、私はCXF-servlet.xmlからコンポーネント・スキャンを削除する場合、問題が消えるように見えますが、@Inject
と私の@Configurable
クラスを処理することができません。今私は、CXFとSpringがSpringのコンテキストをどのように起動するのかについて、より混乱しています。
更新2: これは、cxf-servletとapplicationContextの両方でコンポーネントスキャンを実行することに関連するものです。すべて動作しますが、起動時に2回読み込まれます。
ここで、フィルタリングする必要がありますか?私は、エンティティマネージャ( 'LocalContainerEntityManagerFactoryBean')を作成するクラス(' @ Configuration')を持っています。何とかこれをフィルタリングする必要がありますか? – Vegard
私が正しい軌道に乗っている間に – Vegard