0

我尝试了两种方法来实现这一点

规格:MyFaces 2.1.7 javax.el 2.1.0 WebFlow 2.3.1 Spring Framework (OSGI)

首先,添加依赖。

<dependency>
  <groupId>de.odysseus.juel</groupId>
  <artifactId>juel-api</artifactId>
  <version>2.2.6</version>
</dependency>

<dependency>
  <groupId>de.odysseus.juel</groupId>
  <artifactId>juel-impl</artifactId>
  <version>2.2.6</version>
</dependency>

<dependency>
  <groupId>de.odysseus.juel/groupId>
  <artifactId>juel-spi</artifactId>
  <version>2.2.6</version>
</dependency>

然后我将捆绑包附加到我的应用程序的 manifest.mf 中。

首先,我尝试使用一些人编码的这种旧方法。当我尝试运行它时,我收到以下错误消息:

org.springframework.binding.expression.ParserException: Unable to parse expression string '#{extRuntimeAuthorityUserManager.addRuntimeAuthority(conversationScope.accessLayerModel.accessUser, T(com.common.identity.enums.ERuntimeAuthority).AUTHORITY_CHANGE_WORKING_INSTITUTION)}'

其次,我最近发现的是这个。我对 javax.el 的冲突版本有一些问题,因为 juel-api 导入是自己的。所以,我在 juel-api manifest 中添加了这一行。

Fragment-Host: javax.el

然后,

我将来自 JUEL 的 ExpressionImpl 添加到 web.xml 中的 MyFaces 配置中

<context-param>
        <param-name>org.apache.myfaces.EXPRESSION_FACTORY</param-name>
        <param-value>de.odysseus.el.ExpressionFactoryImpl</param-value>
</context-param>

不幸的是,我收到以下日志消息:

MyFaces Bean Validation support enabled

这告诉我们 JUEL 没有被加载?我错过了什么或做错了什么..

4

1 回答 1

0

更改了我的应用程序正在使用的 javax.el 的清单。

1) 删除旧的 javax 版本,并将其替换为 jetty.orbit 中最新版本的 javax.el。2)保持我提到的对 Juel 的依赖。3)将这些捆绑包添加到您的项目(webapp)的 Manifest.mf

  • javax.el.2.2.0.v201303151357
  • juel-api
  • juel-impl

4)棘手的部分:打开javax.el.2.2.0.v201303151357并打开这个jar的清单。然后,添加此行以强制使用 juel-api 中的 javax.el。

Fragment-Host: de.odysseus.juel-api
于 2013-04-11T12:23:08.793 回答