【问题标题】:Making Glassfish respond to ajax request JSF 2让 Glassfish 响应 ajax 请求 JSF 2
【发布时间】:2011-07-25 23:36:37
【问题描述】:

我正在尝试向我的服务器(Glassfish v3.1 开源版)发出 ajax 请求,并且出于任何原因该请求永远不会到达服务器,在 tomcat 7 上运行相同的项目它可以正常工作,有任何配置我应该在 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>             

【问题讨论】:

  • 您的问题描述有问题:如果它与 Tomcat 和 Glassfish 一起工作“请求永远不会到达服务器”,这不可能,因为请求是由客户端发出的(我想你没有改变)。因此,请求必须使用 Tomcat 和 GF 或都不使用(您可以使用 Firebug 或 Chrome 开发工具确认)。请在客户端和服务器日志中验证。

标签: jsf-2 richfaces glassfish-3 myfaces


【解决方案1】:

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

你有两个选择:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-06
    • 1970-01-01
    • 2023-03-12
    • 2011-02-27
    • 1970-01-01
    • 2016-07-24
    相关资源
    最近更新 更多