2011-07-25 53 views
2

我試圖做一個ajax請求到我的服務器(Glassfish v3.1開源版本),並且由於任何原因請求永遠不會去服務器,在tomcat上運行相同的項目7它工作正常,有什麼配置,我應該在glassfich或什麼?使Glassfish響應ajax請求JSF 2

使用im月食太陽神,JSF 2個MyFaces的2.1.1,4.0.0 RichFaces的,和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>    

+0

也有一些是不對您的問題描述:如果它與Tomcat和GlassFish的「的要求從來不去服務器」,這不能,因爲請求是由客戶端發出的(我想你沒有改變)。所以這個請求必須使用Tomcat *和* GF發佈,否則都不會發布(可以使用Firebug或Chrome開發工具進行確認)。請驗證客戶端和服務器日誌。 –

回答

2

Glassfish的作爲一個完整的Java EE實現隨一個JSF實現(Mojarra)已經捆綁了。 Glassfish會在您的webapp之前自動加載它。但是,由於您在Web應用程序中捆綁了不同的JSF實現(MyFaces),它將發生衝突。 Tomcat是一個簡單的JSP/Servlet容器,並沒有捆綁JSF,所以也沒有什麼會碰撞(直到你在webapp中刪除了一些不同實現/版本的JSP/Servlet庫)。

你有2種選擇:

  1. 在你的webapp擺脫的MyFaces庫。您的webapp將不會在Tomcat上運行,而不會更改Tomcat的共享類路徑以包含JSF庫。

  2. 告訴Glassfish不要加載其捆綁的JSF實現,而是使用webapp捆綁的JSF代替。編輯/META-INF/sun-web.xml文件在你的web應用程序包含以下行:

    <class-loader delegate="false" /> 
    <property name="useBundledJsf" value="true" />