我正在尝试向我的服务器(Glassfish v3.1开源版)执行ajax请求,并且由于任何原因请求永远不会进入服务器,在tomcat 7上运行相同的proyect它可以正常工作,有任何配置我应该在glassfich上做什么?
我正在使用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>
<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 :(得分:2)
Glassfish作为一个完整的Java EE实现,附带了一个已捆绑的JSF实现(Mojarra)。 Glassfish会在您的webapp之前自动加载它。但是,由于您在Web应用程序中捆绑了不同的JSF实现(MyFaces),因此会发生冲突。 Tomcat是一个简单的JSP / Servlet容器,并不附带捆绑的JSF,所以也没有什么会发生冲突(直到你在webapp中删除一些不同实现/版本的JSP / Servlet库)。
您有两个选择:
摆脱webapp中的MyFaces库。您的webapp将不再在Tomcat上运行,而不会更改Tomcat的共享类路径以包含JSF库。
告诉Glassfish不要加载其捆绑的JSF实现,而是使用webapp-bundled JSF。编辑webapp中的/META-INF/sun-web.xml
文件以包含以下行:
<class-loader delegate="false" />
<property name="useBundledJsf" value="true" />