現在、jboss7.1.3、javaee-api、および jsf 2.1.19 のスタックに取り組んでいます。そして、このエラーを回避できません:
Unexpected exception when attempting to tear down the Mojarra runtime: java.lang.IllegalStateException: Could not find backup for factory javax.faces.application.ApplicationFactory.
私が戦争を薄くしないと問題が現れないので、それは奇妙です. 戦争を薄くするということは、次の構成を maven war プラグインに追加することを意味します。
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
<packagingExcludes>WEB-INF/lib/*.jar</packagingExcludes>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib</classpathPrefix>
</manifest>
</archive>
</configuration>
LinkageError が発生しないように、すべての jar ファイルを app/lib フォルダーに配置します。これは、私の Web プロジェクトも EJB プロジェクトに依存しているためです。しかし、問題は、2 つのモジュールで使用されているメソッド シグネチャを持つ基本クラスがあり、このエラーをスローしていることです。
java.lang.LinkageError: loader constraint violation: when resolving method "com.czetsuya.myApp.bean.MyManagedBean.getEntity()Lcom/czetsuya/myApp/model/MyEntity;" the class loader (instance of org/jboss/modules/ModuleClassLoader) of the current class, com/czetsuya/myApp/util/view/composite/BackingBeanBasedCompositeComponent, and the class loader (instance of org/jboss/modules/ModuleClassLoader) for resolved class, com/czetsuya/myApp/bean/MyManagedBean, have different Class objects for the type pship/model/MyEntity; used in the signature
私の考えは、lib フォルダーに 2 つのモジュール用の 1 つのクラス ローダーを配置することです。そのため、両方のモジュールが親優先の読み込みを使用します。
それとも私のアプローチは完全に間違っていますか?なにか提案を?