私の JSF アプリケーションは JBoss 7.1.1 で動作します。Glassfish 3.1.2.2(最新)で試してみましたが、すべてのマネージド Bean が認識されません。どちらの場合も、同じバージョンの Mojarra 2.1.7 が使用されています。
[#|2013-03-07T17:33:36.734-0500|SEVERE|glassfish3.1.2|javax.enterprise.system.std.com.sun.enterprise.server.logging|_ThreadID=18;_ThreadName=Thread-2;|javax.el.PropertyNotFoundException: /view.xhtml @13,75 listener="#{viewBean.preRenderView}": Target Unreachable, identifier 'viewBean' resolved to null
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:107)
at com.sun.faces.facelets.tag.jsf.core.DeclarativeSystemEventListener.processEvent(EventHandler.java:128)
at javax.faces.component.UIComponent$ComponentSystemEventListenerAdapter.processEvent(UIComponent.java:2486)
at javax.faces.event.SystemEvent.processListener(SystemEvent.java:106)
at com.sun.faces.application.ApplicationImpl.processListeners(ApplicationImpl.java:2168)
at com.sun.faces.application.ApplicationImpl.invokeComponentListenersFor(ApplicationImpl.java:2116)
at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:288)
at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:246)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:108)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
Facelet ページ:
<f:view locale="#{viewBean.locale}">
<f:event type="preRenderView" listener="#{viewBean.preRenderView}" />
....
</f:view>
デバッグから、 @ManagedBean アノテーションを持つすべてのマネージド Bean がビルドされません。したがって、マネージド Bean はすべて null に解決されます。
@ManagedBean(name="viewBean")
@ViewScoped
public class ViewBean {
....
}
JBoss 7 で動作します。
誰もMojarra 2.1.7でGrassfish 3を使用していますか? jsf impl を javax.faces.2.1.17 に置き換えましたが、運が悪く、同じエラーが発生しました。
助けてくれてありがとう。
デイブ