2

我正在尝试向我的服务器(Glassfish v3.1 开源版)发出 ajax 请求,并且出于任何原因,该请求永远不会到达服务器,在 tomcat 7 上运行相同的 proyect 它可以正常工作,我应该进行任何配置用玻璃鱼或任何东西做?

我正在使用 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

Glassfish 作为一个完整的 Java EE 实现附带了一个已经捆绑的 JSF 实现 (Mojarra)。Glassfish 会在你的 webapp 之前自动加载它。但是由于您在 web 应用程序中捆绑了不同的 JSF 实现(MyFaces),所以它会发生冲突。Tomcat 是一个简单的 JSP/Servlet 容器,并且没有捆绑 JSF,因此也不会发生冲突(直到您在 webapp 中删除一些不同实现/版本的 JSP/Servlet 库)。

您有 2 个选项:

  1. 在您的 web 应用程序中摆脱 MyFaces 库。如果不更改 Tomcat 的共享类路径以包含 JSF 库,您的 webapp 将不再在 Tomcat 上运行。

  2. 告诉 Glassfish 不要加载其捆绑的 JSF 实现,而是使用 webapp 捆绑的 JSF。编辑/META-INF/sun-web.xmlwebapp 中的文件以包含以下行:

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