JavaEE7でリダイレクトした際にFacesMessageが消失する
JavaEE7で、リダイレクトを行う前にFacesMessageに値を詰めても、リダイレクトした先で値が消失してしまいます。消失させずに、保持しておくためにはどうしたら良いでしょうか?
リダイレクトのコード
FacesMessage msg = new FacesMessage(...);
FacesContext.getCurrentInstance().addMessage(msg);
ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();
ec.getFlash().setKeepMessages(true);
ec.redirect(ec.getRequestContextPath() + "/something.xhtml?faces-redirect=true");
something.xhtmlのコード
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core"
>
<h:body>
<h:messages globalOnly="true" /><!-- リダイレクト前に作成したFacesMessageが表示されない -->
</h:body>
</html>
追記の情報
Glashfish 4.1.1 では、上記のコードでうまくいきました。
Web Sphere Libarty Profile 8.5.9 では、上記のコードでうまくいきませんでした。
JavaEEの内部実装による差異ということから、MyFacesとMojarraの差でしょうか?(原因は現時点で特定できていません)