【发布时间】:2016-06-08 07:54:11
【问题描述】:
我正在使用Apache TomEE 1.7.4。
我的pom.xml文件中添加的依赖是-
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>javax.el</groupId>
<artifactId>el-api</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>2.2.0</version>
</dependency>
使用new string concatenation operator += 就像在 -
<h:graphicImage
value="#{resource[facesContext.viewRoot.locale+='/default:img/rafa.png']}"/>
我用这个替换了EL 2.2版本-
<dependency>
<groupId>javax.el</groupId>
<artifactId>javax.el-api</artifactId>
<version>3.0.0</version>
</dependency>
但我得到了一个 -
Caused by: javax.el.ELException: Failed to parse the expression [#{resource[facesContext.viewRoot.locale+='/default:img/rafa.png']}]
at org.apache.el.lang.ExpressionBuilder.createNodeInternal(ExpressionBuilder.java:145)
at org.apache.el.lang.ExpressionBuilder.build(ExpressionBuilder.java:171)
at org.apache.el.lang.ExpressionBuilder.createValueExpression(ExpressionBuilder.java:216)
at org.apache.el.ExpressionFactoryImpl.createValueExpression(ExpressionFactoryImpl.java:66)
at org.apache.webbeans.el22.WrappedExpressionFactory.createValueExpression(WrappedExpressionFactory.java:59)
at com.sun.faces.facelets.tag.TagAttributeImpl.getValueExpression(TagAttributeImpl.java:408)
... 43 more
建议,如果有的话?
我不确定我是否必须升级到版本 8,
Apache Tomcat 8 支持 Java Servlet 3.1、JavaServer Pages 2.3、 Java 统一表达式语言 3.0 和用于 WebSocket 1.1 的 Java API 规格。
好的,它与
GlassFish(4.0) Java EE Application Server 完美搭配。
但是我不明白要在 pom.xml 文件中创建哪些条目-
Here,提到需要在pom.xml中添加下面的依赖
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version><!-- 7.0 (JSF 2.2) or 6.0 (JSF 2.0/2.1) --></version>
<scope>provided</scope>
</dependency>
添加后有-
一个截图来说明我的困惑-
在服务器日志中,我发现服务器正在使用这个版本的 Mojarra
2016-06-08T17:26:36.778+0530|信息:初始化
Mojarra 2.2.0( 20130502-2118https://svn.java.net/svn/mojarra~svn/tags/2.2.0@11930)
你看到有一个jar文件javaee。
如果我需要使用Mojarra 2.2.6 版本,比如说我需要做什么?
【问题讨论】:
-
您的 Maven 配置不正确。这有帮助吗? stackoverflow.com/q/8081234(和 stackoverflow.com/tags/jsf/info 中的“安装 JSF”)
-
@BalusC:JSF 信息页面建议(AS + Maven)用户将此添加到 pom.xml 文件中 -
<dependency> <groupId>javax</groupId> <artifactId>javaee-web-api</artifactId> <version><!-- 7.0 (JSF 2.2) or 6.0 (JSF 2.0/2.1) --></version> <scope>provided</scope> </dependency>,并提供scope。由于 Apache TomEE 将附带 Myfaces 实现,请建议或我是否需要使用 Apache TomEE PLUME 来支持 Mojarra。 -
您应该基本上替换服务器本身的库,而不是通过 webapp 提供。或者替换整个服务器本身。
-
@BalusC:用哪个服务器替换整个服务器本身?没明白你的意思。其次,替换服务器本身的库,您的意思是替换Apache-TomEE-webprofile-1.7.4\lib 的lib 文件夹中的jar。我的困惑是我没有与 AS 合作过。 :)
-
1) 通过捆绑 Mojarra。 2)这是正确的。也许需要做或考虑更多的事情,这取决于服务器本身。在例如WildFly 比仅仅更换 JAR 需要更多的工作。
标签: maven jakarta-ee el jsf-2.2