私はこの設定を数日間実行しようとしていますが、まだ運がありません。ここで私が使用してきたテスト・アプリケーションの:WebLogic 12cでMyFaces + CDIを使用できますか?
@Named
@RequestScoped
public class Test {
private String test = "test";
public String getTest() { return test; }
public void setTest(String test) { this.test = test; }
}
とJSFページ内を:
<h:outputText value="#{test.test}"/>
MyFacesをせずに、このサンプルを実行するには、正常に動作します(それが必要のように「test」をレンダリングする)、しかし、ときに私MyFacesをWARファイルにデプロイして、weblogic.xml CDI内で必要な設定を行うと、動作が停止しているようです(少なくとも、統合はJSFとCDIになります)、出力HTMLには何も表示されません。 MyFaces自体は大丈夫だと思われる。
私の基本的な構成は次のとおりです。
- いるWebLogic Server 12cの(12.1.1.0)を私はちょうど
- MyFacesを確認するために昨日の開発版をダウンロードして、パッチが最新でなければなりませんWEB-INF/libsの内に配備-2.1.10、
- beans.xmlのはorg.apache.myfaces.webapp.StartupServletContextListenerは、WebLogicがMYFを使用するように設定されてweb.xmlの
- に登録されている場所に
- ですweblogic.xmlのに
weblogic.xmlの内容を使用してエース:
私がこれまで学んだことを<prefer-application-packages>
<package-name>javax.faces.*</package-name>
<package-name>com.sun.faces.*</package-name>
<package-name>com.bea.faces.*</package-name>
</prefer-application-packages>
<prefer-application-resources>
<resource-name>javax.faces.*</resource-name>
<resource-name>com.sun.faces.*</resource-name>
<resource-name>com.bea.faces.*</resource-name>
<resource-name>META-INF/services/javax.servlet.ServletContainerInitializer</resource-name>
<resource-name>META-INF/services/com.sun.faces.spi.FacesConfigResourceProvider</resource-name>
</prefer-application-resources>
:それはCDIの実装だとして
- WL12cは溶接が装備されているが、1.1.3。
- JSF実装を切り替えるときはいつでも、JSF/CDIを自分で統合する責任があると思います。これは本当ですか(確かに希望ではありません)?
物事私がこれまで試した:
- は、それが何らかの形で一緒に溶接し、MyFacesののり望ん、ミックスにMyFacesのCODIを追加しますが、それはしませんでした。
- CDI実装としてWeldをOpenWebBeansで置き換えます。これは最初はうまくいくように見えましたが、後でいくつかの面白いClassCastExceptionsをいくつかの内部sun.reflectionパッケージで与えました。これは、とにかく避けたい解決策です。
- web.xmlとfaces-config.xmlのさまざまなオプションを使用してWeldを手動で起動します。これは、Weldにすべての種類のエラーメッセージをログに記録するようになっているようです。 Weblogicを新しいWeldバージョンにアップグレードすることによって、ある程度これらは「修正」できますが、これを行うたびに次のエラーに遭遇します。繰り返しますが、私はむしろこのルートも避けたいと思います。
WL12cでMyFacesを使用してCDIサポートを維持しているのは本当に難しいですか、それともわかりませんか?助けてくれてありがとう。
: - CODIはMyFacesので、他のものとは独立しているので、それはここに助けることができません。 - 完全統合を使用したい場合、CDI 1.0アプリケーションサーバーは特定のCDI実装(あるベンダーの、場合によっては特定のバージョンの)にバインドされています。 –
使用方法: com.sun.faces。* package-name> MyFaces-Coreを使用したい場合は意味がありません。 –
Ok.So WeblogicはWeld 1.1.3それで?私は気にしません、私は本当にMyFacesを実行することに興味がありますが、CDIの統合を壊すことはありません。実際、私はむしろ残りのweblogicスタックを残しておきたいと思います。 com.sun.faces。*パッケージについては、これらはMyFacesディストリビューションの一部ではないと思いますので、weblogic.xmlから削除します(設定は実際は(古い)weblogicスレッドに基づいています:https:/ /forums.oracle.com/forums/thread.jspa?threadID=2335546)。しかし、WL12でMyFacesを使用することが可能かどうかはまだ分かりません。何かヒント? –