私はJSFで動的コンポーネントを生成しています.これは私のfaces-config.xml
ファイルです:
<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0" >
<application>
<el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
<resource-bundle>
<base-name>build</base-name>
<var>build</var>
</resource-bundle>
<resource-bundle>
<base-name>message</base-name>
<var>message</var>
</resource-bundle>
<locale-config>
<default-locale>en</default-locale>
<supported-locale>fr</supported-locale>
<supported-locale>es</supported-locale>
</locale-config>
</application>
以下のようなリンケージエラーが発生しました
SEVERE: Exception sending context initialized event to listener instance of class com.sun.faces.config.ConfigureListener
java.lang.RuntimeException: java.lang.LinkageError: loader constraint violation: when resolving interface method "javax.servlet.jsp.JspApplicationContext.getExpressionFactory()Ljavax/el/ExpressionFactory;" the class loader (instance of org/apache/catalina/loader/WebappClassLoader) of the current class, com/sun/faces/config/ConfigureListener, and the class loader (instance of org/apache/catalina/loader/StandardClassLoader) for resolved class, javax/servlet/jsp/JspApplicationContext, have different Class objects for the type javax/el/ExpressionFactory used in the signature
at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:294)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4723)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5226)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5221)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
el-api jar
フォルダにファイルを追加しました/WEB-INF/lib
。競合によるSpring ELの除外という1つの解決策を見つけました。解決策は、以下のコードを に追加するpom.xml
ことですが、アプリケーションにそのファイルがありません。
<dependencies>
<dependency org="org.springframework" name="org.springframework.web.servlet" rev="3.0.5.RELEASE">
<!-- Fix for java.lang.LinkageError: loader constraint violation -->
<exclude name="com.springsource.javax.el" />
</dependency>
</dependencies>
<dependency>
このタグはどこに置く必要がありますか? 知らない。私のアプリケーションでは、ファイルとファイルしか faces-config.xml
ありapplication-context.xml
ませんweb.xml
。私のアプリケーションは、Spring と JSF の統合に基づいています。Tomcat サーバーを使用しています。ファイルcontext.xml
、web.xml
、server.xml
およびが含まれていますtomcat-users.xml
。<dependency>
そのタグをどこに置く必要がありますか?または、代替ソリューションはありますか?ファイルを削除したくありませんel-api.jar
。