BOm dia,
Tenho 2 aplicações, e quero que uma delas receba uma mensagem assim que o usuario clickar em salvar novo registro, essa aplicação deverá passar uma mensagem para uma outra aplicação indicando um novo registro.
Para que eu consiga fazer tal coisa estou usando o socket do primefaces , e meu codigo é o seguinte na aplicação de cadastro:
Na interface:
<p:growl widgetVar="growl" showDetail="true" />
em baixo do botão que emite a mensagem:
<p:commandButton value="FACES MENSSAGE" actionListener="#{abrirOcorrenciaBean.send}" immediate="true"/>
<p:socket onMessage="handleMessage" channel="/mapa" />
</p:panel>
e o javascript:
<script type="text/javascript">
function handleMessage(facesmessage) {
facesmessage.severity = 'info';
growl.show([facesmessage]);
}
</script>
e meu metodo send, que recebe pelo channel e emite a mensagem:
public void send() {
System.out.println("SEND EXECUTADO");
PushContext pushContext = PushContextFactory.getDefault().getPushContext();
pushContext.push("/mapa", new FacesMessage("NOVO", "Novo Link"));
}
os codigos acima estão referente a aplicação que faz o cadastro, a aplicação que deve receber a mensagem é a seguinte:
No meu index:
<p:socket onMessage="handleMessage" channel="/mapa" />
<script type="text/javascript">
function handleMessage(facesmessage) {
facesmessage.severity = 'info';
growl.show([facesmessage]);
}
</script>
e o meu send:(na segunda aplicação acho que nem uso ele, pois é para enviar mensagem, e segunda aplicação minha so vai receber)
public void send() {
System.out.println("SEND EXECUTADO");
PushContext pushContext = PushContextFactory.getDefault().getPushContext();
pushContext.push("/mapa", new FacesMessage("NOVO", "Novo Link"));
}
a primeira aplicação( a aplicação de cadastro) esta emitindo a mensagem, porem não recebe na segunda aplicacão, eu clicko em FACES MENSSAGE, e aparece somente para a primeira, e a segundo não mostra a mensagem, alguem pode me ajduar? Obrigado desde ja!