让 Glassfish 响应 ajax 请求 JSF 2
我正在尝试向我的服务器(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>
<代码>
I'm trying to do an ajax request to my server (Glassfish v3.1 open source edition) and for any reason the request never go to the server, running the same proyect on tomcat 7 it works correctly, there's any configuration that i should make on glassfich or anything??
im using eclipse helios, jsf 2 MyFaces 2.1.1, richfaces 4.0.0, and glassfish 3.1 open source edition
here's my code
<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>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Glassfish 作为一个完整的 Java EE 实现,附带了已经捆绑的 JSF 实现 (Mojarra)。 Glassfish 会在您的网络应用程序之前自动加载它。但由于您在 Web 应用程序中捆绑了不同的 JSF 实现 (MyFaces),因此它会发生冲突。 Tomcat 是一个简单的 JSP/Servlet 容器,不与捆绑的 JSF 一起提供,因此也不会发生冲突(除非您在 Web 应用程序中删除一些不同实现/版本的 JSP/Servlet 库)。
您有 2 个选择:
删除 Web 应用程序中的 MyFaces 库。如果不更改 Tomcat 的共享类路径以包含 JSF 库,您的 Web 应用程序将不再在 Tomcat 上运行。
告诉 Glassfish 不要加载其捆绑的 JSF 实现,而是使用 web 应用程序捆绑的 JSF。编辑 Web 应用程序中的
/META-INF/sun-web.xml
文件以包含以下行:Glassfish as being a full Java EE implementation ships with a JSF implementation (Mojarra) already bundled. Glassfish will auto-load it before your webapp. But since you bundled a different JSF implementation (MyFaces) in your webapp, it will collide. Tomcat is a simple JSP/Servlet container and does not ship with JSF bundled so there's also nothing which will collide (until you drop some JSP/Servlet libraries of a different implementation/version in your webapp).
You have 2 options:
Get rid of MyFaces libraries in your webapp. Your webapp will only not run on Tomcat anymore without changing Tomcat's shared classpath to include JSF libraries.
Tell Glassfish to not load its bundled JSF implementation but to use the webapp-bundled JSF instead. Edit the
/META-INF/sun-web.xml
file in your webapp to contain the following lines: