2

サーバー (Glassfish v3.1 オープン ソース エディション) に対して ajax リクエストを実行しようとしていますが、何らかの理由でリクエストがサーバーに送られず、Tomcat 7 で同じプロジェクトを実行すると正しく動作します。必要な構成があります。グラスフィッチか何かで作りますか??

私はEclipse Helios、jsf 2 MyFaces 2.1.1、richfaces 4.0.0、およびglassfish 3.1オープンソース版を使用しています

これが私のコードです

<h:panelGroup>
   <h:inputText id="firstName" 
         value="#{RegistrationForm.first_name}"
         required="true"
         requiredMessage="Please enter your first name"> 
         <f:converter converterId="bankingCore.UpperCaseConventer for="firstName"/>
         <f:ajax event="blur" execute="@all" render="@form"/>
    </h:inputText>
    <h:message id="NameError" for="firstName" styleClass="errorClass"/>
</h:panelGroup>             

4

1 に答える 1

2

完全な Java EE 実装である Glassfish には、JSF 実装 (Mojarra) が既にバンドルされています。Glassfish は、webapp の前にそれを自動ロードします。しかし、Web アプリケーションに別の JSF 実装 (MyFaces) をバンドルしたため、衝突します。Tomcat は単純な JSP/サーブレット コンテナーであり、JSF がバンドルされた状態で出荷されないため、衝突するものもありません (Web アプリケーションに異なる実装/バージョンの JSP/サーブレット ライブラリをドロップするまで)。

次の 2 つのオプションがあります。

  1. Web アプリケーションで MyFaces ライブラリを削除します。Tomcat の共​​有クラスパスを変更して JSF ライブラリを含めない限り、Web アプリケーションは Tomcat 上でのみ実行されます。

  2. バンドルされた JSF 実装をロードせず、代わりに webapp にバンドルされた JSF を使用するように Glassfish に指示します。/META-INF/sun-web.xmlwebapp 内のファイルを編集して、次の行を含めます。

    <class-loader delegate="false" />
    <property name="useBundledJsf" value="true" />
    
于 2011-07-27T12:06:40.830 に答える