- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚在 JBoss AS 7 上从 Richfaces 3.3.3 升级到 4.2.2,从 Seam 2.2.2 升级到 Seam 2.3。目前运行良好。
但是我必须使用标签:a4j:push,而且我不知道如何将接缝组件绑定(bind)到这个标签。
我有什么:
@Name(TestBeanInterface.NAME)
@JndiName(value=TestBeanInterface.JNDI_NAME)
@Scope(ScopeType.SESSION)
public class TestBean implements Serializable {
private static final String CDI_PUSH_TOPIC = "pushCdi";
private String userIdentifier;
@Inject
@Push(topic = CDI_PUSH_TOPIC, subtopic = "#{testBean.userIdentifier}")
private javax.enterprise.event.Event<String> pushEvent;
@PostConstruct
public void init() {
System.out.println("hey");
if (userIdentifier == null) {
userIdentifier = UUID.randomUUID().toString().replace("-", "");
}
TopicsContext topicsContext = TopicsContext.lookup();
topicsContext.getOrCreateTopic(new TopicKey(CDI_PUSH_TOPIC, userIdentifier));
}
public void sendMessage() throws Exception {
System.out.println("Send Message");
pushEvent.fire("a test message");
}
public String getUserIdentifier() {
return userIdentifier;
}
public void setUserIdentifier(String userIdentifier) {
this.userIdentifier = userIdentifier;
}
}
我得到了什么:
22:23:28,191 INFO [org.atmosphere.cpr.AtmosphereFramework] (MSC service thread 1-2) Atmosphere is using async support: org.atmosphere.container.BlockingIOCometSupport running under container: JBoss Web/7.0.13.Final
22:23:28,193 INFO [org.atmosphere.cpr.AtmosphereFramework] (MSC service thread 1-2) Installed WebSocketProtocol org.atmosphere.websocket.protocol.SimpleHttpProtocol
22:23:28,201 INFO [org.atmosphere.cpr.AtmosphereFramework] (MSC service thread 1-2) Installed Default AtmosphereInterceptor [Android Interceptor Support, SSE Interceptor Support, JSONP Interceptor Support]. Set org.atmosphere.cpr.AtmosphereInterceptor.disableDefaults in your xml to disable them.
22:23:28,203 WARN [org.atmosphere.cpr.AtmosphereFramework] (MSC service thread 1-2) No BroadcasterCache configured. Broadcasted message between client reconnection will be LOST. It is recommended to configure the HeaderBroadcasterCache.
22:23:28,204 INFO [org.atmosphere.cpr.AtmosphereFramework] (MSC service thread 1-2) HttpSession supported: false
22:23:28,205 INFO [org.atmosphere.cpr.AtmosphereFramework] (MSC service thread 1-2) Using BroadcasterFactory: org.atmosphere.cpr.DefaultBroadcasterFactory
22:23:28,205 INFO [org.atmosphere.cpr.AtmosphereFramework] (MSC service thread 1-2) Using WebSocketProcessor: org.atmosphere.websocket.DefaultWebSocketProcessor
22:23:28,206 INFO [org.atmosphere.cpr.AtmosphereFramework] (MSC service thread 1-2) Using Broadcaster: org.atmosphere.cpr.DefaultBroadcaster
22:23:28,208 INFO [org.atmosphere.cpr.AtmosphereFramework] (MSC service thread 1-2) Atmosphere Framework 1.0.0.beta5 started.
22:23:28,212 INFO [org.atmosphere.cpr.MeteorServlet] (MSC service thread 1-2) Installed Filter/Meteor org.richfaces.webapp.PushHandlerFilter mapped to /*
22:23:28,234 INFO [org.atmosphere.cpr.AtmosphereFramework] (MSC service thread 1-2) Installed AtmosphereHandler org.atmosphere.handler.ReflectorServletProcessor mapped to context-path: /*
22:23:28,236 INFO [org.atmosphere.handler.ReflectorServletProcessor] (MSC service thread 1-2) Installing Servlet null
22:23:28,238 INFO [org.atmosphere.handler.ReflectorServletProcessor] (MSC service thread 1-2) Installing Filter PushHandlerFilter
.....
22:23:38,101 INFO [stdout] (http-localhost-127.0.0.1-8080-1) hey
22:23:38,538 WARN [org.jboss.seam.mock.MockViewHandler] (http-localhost-127.0.0.1-8080-1) You should catch the exception before Seam: java.lang.IllegalArgumentException: no file extension in servlet path: /__richfaces_push
at org.jboss.seam.mock.MockViewHandler.getActionURL(MockViewHandler.java:49) [jboss-seam.jar:2.3.0.Beta2]
at org.jboss.seam.jsf.SeamViewHandler.getActionURL(SeamViewHandler.java:75) [jboss-seam.jar:2.3.0.Beta2]
at org.jboss.seam.faces.FacesManager.redirect(FacesManager.java:168) [jboss-seam.jar:2.3.0.Beta2]
at org.jboss.seam.faces.Redirect.execute(Redirect.java:154) [jboss-seam.jar:2.3.0.Beta2]
at org.jboss.seam.exception.DebugPageHandler.handle(DebugPageHandler.java:32) [jboss-seam.jar:2.3.0.Beta2]
at org.jboss.seam.exception.Exceptions.handle(Exceptions.java:76) [jboss-seam.jar:2.3.0.Beta2]
at org.jboss.seam.web.ExceptionFilter.endWebRequestAfterException(ExceptionFilter.java:114) [jboss-seam.jar:2.3.0.Beta2]
at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:70) [jboss-seam.jar:2.3.0.Beta2]
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) [jboss-seam.jar:2.3.0.Beta2]
at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45) [jboss-seam.jar:2.3.0.Beta2]
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) [jboss-seam.jar:2.3.0.Beta2]
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:73) [jboss-seam.jar:2.3.0.Beta2]
at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158) [jboss-seam.jar:2.3.0.Beta2]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:397) [jbossweb-7.0.13.Final.jar:]
at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) [jboss-as-jpa-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368) [jbossweb-7.0.13.Final.jar:]
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [jbossweb-7.0.13.Final.jar:]
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671) [jbossweb-7.0.13.Final.jar:]
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930) [jbossweb-7.0.13.Final.jar:]
at java.lang.Thread.run(Thread.java:679) [rt.jar:1.6.0_24]
最佳答案
这些是我最终在推送工作后在 Richfaces 论坛上写的笔记。请仔细阅读并看看这是否有帮助。
我使用的是 servlet v3 容器 (web.xml: web-app version="3.0"),因此不需要在 web.xml 中显式声明推送 servlet。
<我在 web.xml 中看到过一些 PushFilter 的示例,这肯定给我带来了问题,只有在删除它后我才让它正常工作。
我已经看到建议在 web.xml 中使用它,但我不需要:
<context-param>
<param-name>org.richfaces.push.handlerMapping</param-name>
<param-value>/__richfaces_push</param-value>
</context-param>
0.8.0-RC1之后(不包括)的Atmosphere版本似乎有问题这会导致 WebSockets 出现 NoClassDefFound 错误(无论如何)。最新版本0.8.2无法运行。
需要java文件中与topicsContext相关的行 - 这就是导致“主题'主题名称'未配置错误”的原因。展示示例中缺少这些内容,但在组件指南中引用了这些内容。
pom.xml
<dependency>
<groupId>org.atmosphere</groupId>
<artifactId>atmosphere-runtime</artifactId>
<version>0.8.0-RC1</version>
<type>jar</type>
</dependency>
域.xml
<jvm-options>-Dcom.sun.grizzly.http.asyncwrite.enabled=true</jvm-options>
<jvm-options>-Dcom.sun.grizzly.http.asyncwrite.maxBufferPoolSize=10000</jvm-options>
web.xml
<context-param>
<param-name>org.richfaces.push.jms.disable</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>org.atmosphere.useBlocking</param-name>
<param-value>true</param-value>
</context-param>
<servlet>
<description>AtmosphereServlet</description>
<servlet-name>AtmosphereServlet</servlet-name>
<servlet-class>org.atmosphere.cpr.AtmosphereServlet</servlet-class>
<async-supported>true</async-supported>
</servlet>
测试.xhtml
<h:outputText id="uid" value="uid: #{testBean.userIdentifier}"/>
<a4j:push address="#{testBean.userIdentifier}@pushCdi"
onerror="alert('error: ' + event.rf.data)"
ondataavailable="alert('data: ' + event.rf.data)">
<a4j:ajax event="dataavailable"/>
</a4j:push>
TestBean.java
@ViewScoped
public class TestBean implements Serializable {
private static final String CDI_PUSH_TOPIC = "pushCdi";
private String userIdentifier;
@Inject
@Push(topic = CDI_PUSH_TOPIC, subtopic = "#{testBean.userIdentifier}")
private javax.enterprise.event.Event<String> pushEvent;
@PostConstruct
public void init() {
if (userIdentifier == null) {
userIdentifier = UUID.randomUUID().toString().replace("-", "");
}
TopicsContext topicsContext = TopicsContext.lookup();
topicsContext.getOrCreateTopic(new TopicKey(CDI_PUSH_TOPIC, userIdentifier));
}
public void sendMessage() throws Exception {
Log.log("sendMessage");
pushEvent.fire("a test message");
}
// add getters & setters
关于java - Richfaces 4 和 a4j :push in Seam,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12035045/
非常简单: }" ajaxSingle="true"> 那显然是无效的EL。我以这种方式有条件地显示 myModelPanel 的最简洁方法是什么? 谢谢 IA 最佳
我正在尝试使用 simple demo来自 richfaces progressBar 页面。 当我转到页面时,它呈现开始按钮,按下按钮后进度条显示为 0% - 而不是计数到 100 显示 -1 就是
我目前正在处理一个项目,我想将其从 3.3.3.Final 版本迁移到 RichFaces 4。我想知道... 在迁移之前有什么我应该考虑、了解或考虑的重要事项吗? (可能是一个愚蠢的问题,但是...
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
很抱歉问题标题,但我想不出更好的标题。 我正在使用 JSF 2.0 (MyFaces 2.0.2) 并将 RichFaces 4 (4.0.0.20101004-M3) 添加到我的项目中。我找到了一个
我们正在从 RichFaces 3.3.3 升级到 RichFaces 4.2.0。似乎元素 css 类名称已更改,但我找不到新旧名称之间的任何映射。我们的元素中有很多用于丰富组件的自定义 css 规
什么是limitToList在 JSF 中,RichFaces?它在 RichFaces 4.x 中被删除了吗?是 limitToList和 limitRender一样吗? 最佳答案 limitRen
我尝试运行 RichFaces 4.3.1 Final 的 richfaces-showcase。当我按照 readme.txt 的指示执行命令“mvn clean package”时,出现 Mave
我正在将 JSF 2 和 richfaces 3.3.3 用于托管在 tomcat 6.0.20 上的应用程序。一旦通过浏览器(Mozilla 和 IE)发出请求,应用程序就会崩溃。 我的 web.x
最近我尝试将我的应用程序从 RF-4.1.0.Final 升级到 RF-4.3.2.Final。 我使用的应用服务器是Tomcat-7,项目是使用Maven构建的。 我遇到的一些问题: 1.在Rich
我正在将 JSF 1.2 升级到 JSF 2.x。在这个过程中,我想将应用程序中的每个页面都一个一个地升级。我已经设置了每个依赖项和配置。 RichFaces 4.x 和 PrimeFaces 3.5
简单的 JSF1.2 和 Jboss Server 5.0 工作正常,但添加 Richfaces 3.X JAR 后出现错误。我的应用程序无法运行。 Richfaces jar richfaces-a
好的,这里有点奇怪,我没有看到任何其他报告,最近我们有一些IE11用户报告了UI错误,经过一些测试之后,我意识到执行reRender(我正在使用A4J)后IE11正在放HTML元素放置在错误的位置,例
我的问题是让 RichFaces 日历限制允许选择的日期 由用户。 假设我只想允许用户选择本月的日期和下个月的日期。 我使用了 preloadDateRangeStart 和 preloadDateR
我知道这里有很多关于 JSF 分页的帖子,但没有一个让我满意。 要将相当大的数据拆分成页面,我将使用 RichFaces Data 滚动组件。 它似乎适合这种情况,但它看起来像是“人工”分页。 我不喜
我有一个 h:inputText 和一个 rich:fileUpload。我希望 inputText 在单击时调用 fileUpload。我该怎么做呢?现在,我有这个:
您能告诉我如何找出我正在运行的 Richfaces 版本吗? 我需要知道我是否已经安装了 jQuery,所以也许一种测试方法也可以作为答案。 我正在使用 JBOSS Developer Studio
我有: 我创建了一个具有以下值的组合框: - 测试 - 示例 - 示例 - 洛雷姆·伊普苏姆 在组合框中键入字母/字母组合将触发组件建议以输入文本/组合开头的值。 期望的输出: 强制组合框建议包含输入
我很努力地解决这个问题,但没有找到解决方案。 我只是不想为一个且仅有一个 HTML 页面启用 Richfaces。 为什么?因为我只在一个页面上使用 RichFaces。此外,由于我不使用 JavaS
我使用的是richfaces 3.3我希望我的用户能够在服务器上指定可以保存文件的位置。我该怎么做? 最佳答案 使用任何上传组件 使用额外的组件(trie-view)来表示服务器上的结构 提交时,获取
我是一名优秀的程序员,十分优秀!