JSF 2.2、Hibernate、Primefaces、および Tomcat を使用して Web アプリケーションを構築しています。私は今、2 人の顧客を抱えており、どちらも同じアプリケーションを望んでいますが、UI などに若干の違いがあるため、プロジェクトをコア プロジェクトに分割することにしました。その芯。私がしたことは次のとおりです。
*Eclipseで通常のプロジェクトを作成し、そこにBean、フィルターなどを含むすべてのJavaクラスを配置しました(buildpathを介してprimefaces、hibernate、jpaなどの必要なすべてのライブラリをインポートしました)
*2 つの DynamicWebProjects を作成し、Tomcat を使用した Eclipse Web アプリケーションの展開: 複数のプロジェクトの依存関係を提供するで説明されているように、コア プロジェクトを含めました。
*以前の「完全な」プロジェクトから web.xml をコピーし、表示名タグを変更しただけです
ここで、両方のアプリケーションを実行すると、奇妙な動作が発生します。
*開始ページ (login.xhtml) が表示されますが、リソースはロードされていません。cssも画像もprimefacesコンポーネントもありません。
*ログインして loginBean.login() を呼び出そうとすると、エラーが発生しました: target unreachable, identifier 'loginbean' resolved to null
. 私の Bean は、注釈によってそのように宣言されていることに注意してください。そこで、各Webプロジェクトのfaces-config.xmlでそれらを宣言しようとしましたが、エラーはなくなりました。しかし残念なことに、これは他のエラーにつながりました。たとえば、Error while running query: No query defined for that name [User.findUserByEmail]
これもコア クラスのアノテーションを介して定義されています。
※ナビも動かなくなりました。
どういうわけかコアプロジェクトをインポートしただけで、注釈が無視されていると思います。しかし、.xml ファイルですべてを定義したくはありません。
もちろん、ここ Stackoverflow でさまざまなスレッドを読みましたが、コードに何も変更を加えておらず、1 つのプロジェクトだけですべてを実行していたときに完全に正常に動作していたため、どれも問題に適合していないようです。また、問題なくコア クラスにアクセスできるため、コア プロジェクトも正常にインポートされているようです。それを修正する方法の手がかりはありますか?また、私は JEE 全体に非常に慣れていないので、何か重要なものが不足している場合はお知らせください。
前もって感謝します