2011-07-25 136 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" />