0

これを実装するために 2 つの方法を試しました。

仕様: 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)}'

第二に、私が見つけた最新のものはこれです。juel-api のインポートが独自のものであるため、javax.el の衝突バージョンに問題がありました。そこで、juel-api マニフェストにこの行を追加しました。

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)私が言及したジュエルからの依存関係を維持します。3) これらのバンドルをプロジェクト (webapp) の Manifest.mf に追加します。

  • javax.el.2.2.0.v201303151357
  • juel-api
  • ジュエルインプ

4) トリッキーな部分: javax.el.2.2.0.v201303151357 を開き、この jar のマニフェストを開きます。次に、この行を追加して、juel-api からの javax.el の使用を強制します。

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