0

h:formタグを挿入してもレンダリングされない単純なJSF2.0xhtmlページがあります。通常のタグを使用でき、問題なくレンダリングされます。

私の仕様は次のとおりです。-Java1.6-WebSphere8.0.0.5とその組み込みのApacheMyFaces2.0.4-PrimeFaces 3.4.2 --OmniFaces 1.3-HTML 5タグをサポートする必要があるため、使用しています

簡単なテストページは次のとおりです。

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:ui="http://java.sun.com/jsf/facelets"
  xmlns:f="http://java.sun.com/jsf/core"
  xmlns:h="http://java.sun.com/jsf/html">
<h:head>
    <title>This is a test page</title>
</h:head>
<h:body>

    <h:form></h:form>
</h:body>
</html>

また、NetBeansとTomcat 7を使用してこのテストページをテストし、MyFaces 2.0.4を依存関係としてリストし、PrimeFacesとOmniFacesの依存関係をpomから取り出して、どちらも問題を引き起こしていないことを確認しました。ページはまだレンダリングされません。

DOCTYPEを標準に変更することに注意してください。

<?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">

また、動作していません。

エラーは次のとおりです。

javax.faces.FacesException:java.lang.NullPointerException:serialFactory at org.apache.myfaces.shared_impl.context.ExceptionHandlerImpl.wrap(ExceptionHandlerImpl.java:241)at org.apache.myfaces.shared_impl.context.ExceptionHandlerImpl.handle(ExceptionHandlerImpl .java:156)org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:258)at javax.faces.webapp.FacesServlet.service(FacesServlet.java:191)atorg.apache.catalina.core。 ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)at org org.apacheの.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)。catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java: 99)org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)at org.apache.catalina.connector.CoyoteAdapter .service(CoyoteAdapter.java:407)at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)at org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:585)atorg。 apache.tomcat.util.net.AprEndpoint $ SocketProcessor.run(AprEndpoint.java:1813)(java.util.concurrent.ThreadPoolExecutor)。runWorker(ThreadPoolExecutor.java:1110)at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:603)at java.lang.Thread.run(Thread.java:722)原因:java.lang.NullPointerException :org.apache.myfaces.shared_impl.util.StateUtils.getAsByteArray(StateUtils.java:268)のserialFactory org.apache.myfaces.shared_impl.util.StateUtils.construct(StateUtils.java:235)のorg.apache.myfaces .renderkit.html.HtmlResponseStateManager.writeViewStateField(HtmlResponseStateManager.java:120)at org.apache.myfaces.renderkit.html.HtmlResponseStateManager.writeState(HtmlResponseStateManager.java:111)at javax.faces.render.ResponseStateManager.writeState(ResponseStateManager.java :67)org.apache.myfaces.application.jsp.JspStateManagerImpl.writeState(JspStateManagerImpl.java:598)at javax.faces.application.StateManager.writeState(StateManager.java:200)at org.apache.myfaces.application.ViewHandlerImpl.writeState(ViewHandlerImpl.java:302)at javax.faces.application.ViewHandlerWrapper.writeState(ViewHandlerWrapper .java:65)at javax.faces.application.ViewHandlerWrapper.writeState(ViewHandlerWrapper.java:65)at org.apache.myfaces.shared_impl.renderkit.html.HtmlFormRendererBase.encodeEnd(HtmlFormRendererBase.java:179)atjavax.faces。 component.UIComponentBase.encodeEnd(UIComponentBase.java:519)at javax.faces.component.UIComponent.encodeAll(UIComponent.java:626)at javax.faces.component.UIComponent.encodeAll(UIComponent.java:622)at javax.faces org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguageの.component.UIComponent.encodeAll(UIComponent.java:622)。renderView(FaceletViewDeclarationLanguage.java:1320)at org.apache.myfaces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:263)at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:59)at javax.faces.application .ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:59)at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:85)at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:239)。 ..17以上59)org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:85)at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:239)...17詳細59)org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:85)at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:239)...17詳細

MyFaces2.0.6で問題が修正されていることに気づきました。問題は、WASv8のMyFaces2.0.4に接続されていることです。WAS v8の組み込みCDIを使用する必要があるので、EJB3.1と組み合わせることができます。組み込みのCDIは、組み込みのMyFacesでのみ使用できます(WAS v8のマニュアルにそのように記載されています)。

回避策の提案はありますか?代わりに単純な<form>タグを使用できますか?<form>タグを使用してもMyFacesエラーは表示されません。

4

1 に答える 1

0

OmniFaces 1.3 が原因であることが判明しました。BalusC は、 OmniFaces の既知の問題 wiki ページにそのエラーを含めました。

残念です。IE6-8 の html5.js スクリプトの条件付き読み込みに OmniFaces を使用していました。WAS v8.0.0.6 は 4 月まで待つようです。

于 2013-02-05T21:18:30.650 に答える