jsf - o:EJB 类中的套接字 - 我在 org.omnifaces.util.Messages 中得到一个 NPE
问题描述
我正在尝试从我的 EJB 类发送推送通知:
@Stateless
public class SendEmailNotificationReminderServiceBean implements SendEmailNotificationReminderService {
@Inject
private BeanManager beanManager;
private void sendNotification {
// Push Nachricht
PushEvent event = new PushEvent("sendNotification", 1);
beanManager.fireEvent(event);
}
}
这是我的插座:
@Named
@ApplicationScoped
public class NotificationSocket implements Serializable {
private static final long serialVersionUID = 7615791377170410627L;
@Inject
@Push(channel = "notificationChannel")
private PushContext push;
/**
* Push Notification
*
* @param recipientUser
*/
public void pushUser(@Observes PushEvent event) {
if (event == null)
return;
Set<Future<Void>> sent = push.send(event.getMessage(), event.getUserId());
}
}
我的对象:
public class PushEvent {
private String message;
private Long userId;
public PushEvent(String message) {
super();
this.message = message;
}
//////////////
public PushEvent(String message, Long userId) {
super();
this.message = message;
this.userId = userId;
}
public String getMessage() {
return message;
}
public Long getUserId() {
return userId;
}
}
我的 JSF 页面:
<o:socket channel="notificationChannel"
user="#{loginBean.currentEmployee.id}" scope="session"
onmessage="notificationLoadScript">
</o:socket>
<h:form id="notificationPushTopbarForm">
<p:remoteCommand name="notificationLoadScript"
actionListener="#{topbarMenuController.loadNotification()}"
oncomplete="changeTitleForNotification(#{topbarMenuController.numberOfNewNotificationAvailable})"
update=":notificationLink, :notificationSidebarForm" global="false" />
</h:form>
我想做的是:
- 从我的后端(EJB 层)到当前登录的用户和此通道创建一个 PushNotification。
例如,您可以想象 Stackoverflow 中的通知图标(右上角)。
我没有收到错误消息,但 JSF 组件也没有更新(p:remoteCommand 调用)。知道如何解决这个问题吗?
解决方案
推荐阅读
- css - 悬停不工作
- latex - 使用 BBedit grep 替换部分 LaTeX 命令
- java - 如何从 Spring Boot 应用程序更改 consul K/V Store 中的值
- ansible - 从板上传递 ansible 变量
- arrays - 点击后试图使图像消失 p5
- database - 使用 vb.net 在访问中的两个日期之间进行选择
- swift - 在 UITableView 行中保存按钮的选择状态(Swift)
- groovy - 如何在 Groovy 中用空字符串(“”)替换“}
- windows - 在命令 Windows 10 上卷曲多行
- angular - mat-sidenav 在页面加载时打开。我该如何关闭它?