2012-11-16 19 views
0

我已经创建了一个Web应用程序使用JSF + Icefaces + Richfaces + Primefaces。它工作得很好,而我从eclipse作为项目运行它,但当我创建它WAR文件并部署在GlassFish应用服务器,然后在呈现网页时抛出此异常
javax.servlet.ServletException:WriteText方法不能写空文本

javax.servlet.ServletException: WriteText method cannot write null text 

我搜查,但没有得到任何好solution.A快速帮助是高度赞赏


编辑:1
我认为这将是该

     <li class="page_item" id="liMasterSearch">  <!-- this is for hide (<li class="page_item hide" id="liMasterSearch"> applied to every class) --> 
          <h:commandLink value="Search" action="#{masterRenderBean.showSimpleSearch}"></h:commandLink> 
         </li> 

         <li class="page_item" id="liAdvanceSearch"> 
          <h:commandLink value="Advance Search" action="#{masterRenderBean.showADVS}"></h:commandLink> 
         </li> 

这里的相关部分,你可以看到两个链接(1)搜索(2)高级搜索
当我点击搜索,它显示搜索页面(通过渲染,其实我已经包含在母版的所有页面,并将其呈现在commandlink功能)

<h:panelGroup rendered="#{not masterRenderBean.simpleSearch}"> 
      <ui:include src="../../WebPages/SearchPages/MasterSearch.xhtml"></ui:include> 
      </h:panelGroup> 

但是当我点击高级搜索丽nk(此部分应呈现)

<h:panelGroup rendered="#{not masterRenderBean.advs}"> 
     <ui:include src="../../WebPages/SearchPages/PersonalAdvanceSearch.xhtml"/> 
     </h:panelGroup> 

浏览器显示上述异常。
注:请记住,这个问题在deploying.It发生在实际应用中是不来了,当我从日食从代码运行

编辑:2我在服务器日志中,这个异常是发现由于acefaces和这部分代码

<ace:autoCompleteEntry id="txtplaceofbirth" 
             rows="10" autocomplete="false" 
             minChars="2" width="150" 
             value="#{inputPersonal.selectedplcofBirth}" 
             filterMatchMode="none" 
             valueChangeListener="#{inputPersonal.valueChangeEventCity}"> 
             <f:selectItems value="#{inputPersonal.cities}"/> 

             </ace:autoCompleteEntry></h:outputFormat> 

搞乱了。任何想法为什么这是hapening?



编辑#3:
这里是例外

[#|2012-11-19T09:55:48.026+0500|SEVERE|glassfish3.1.2|javax.enterprise.system.std.com.sun.enterprise.server.logging|_ThreadID=53;_ThreadName=Thread-2;|java.lang.NullPointerException: WriteText method cannot write null text 
    at org.icefaces.impl.context.DOMResponseWriter.writeText(DOMResponseWriter.java:314) 
    at org.icefaces.impl.context.DOMResponseWriter.writeText(DOMResponseWriter.java:340) 
    at com.sun.faces.renderkit.html_basic.OutputMessageRenderer.encodeEnd(OutputMessageRenderer.java:163) 
    at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875) 
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1764) 
    at javax.faces.render.Renderer.encodeChildren(Renderer.java:168) 
    at org.icefaces.impl.renderkit.RendererWrapper.encodeChildren(RendererWrapper.java:49) 
    at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845) 
    at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:304) 
    at com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:105) 
    at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845) 
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1757) 
    at javax.faces.render.Renderer.encodeChildren(Renderer.java:168) 
    at org.icefaces.impl.renderkit.RendererWrapper.encodeChildren(RendererWrapper.java:49) 
    at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845) 
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1757) 
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1760) 
    at org.icefaces.impl.context.DOMPartialViewContext.processPartial(DOMPartialViewContext.java:142) 
    at javax.faces.component.UIViewRoot.encodeChildren(UIViewRoot.java:981) 
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1757) 
    at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:391) 
    at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131) 
    at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:288) 
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121) 
    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) 
    at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1542) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) 
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655) 
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161) 
    at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231) 
    at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317) 
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195) 
    at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:849) 
    at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:746) 
    at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1045) 
    at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:228) 
    at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137) 
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104) 
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90) 
    at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79) 
    at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54) 
    at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59) 
    at com.sun.grizzly.ContextTask.run(ContextTask.java:71) 
    at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) 
    at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513) 
    at java.lang.Thread.run(Thread.java:722) 
|#] 
+0

请编辑您的问题以包含完整的堆栈跟踪。这会让我们更好地了解代码中实际发生的情况,直到抛出异常为止。 – BalusC

+0

请检查更新的答案..我粘贴了完整的堆栈跟踪 – Freak

回答

0
java.lang.NullPointerException: WriteText method cannot write null text 
    at org.icefaces.impl.context.DOMResponseWriter.writeText(DOMResponseWriter.java:314) 
    at org.icefaces.impl.context.DOMResponseWriter.writeText(DOMResponseWriter.java:340) 
    at com.sun.faces.renderkit.html_basic.OutputMessageRenderer.encodeEnd(OutputMessageRenderer.java:163) 

这是造成在钻嘴鱼科的一个错误首位的全粘性跟踪。 A null价值<h:outputFormat>未得到妥善处理。这已被报告为自Mojarra 2.1.9以来已被修复的issue 2351

显然生产中的服务器正在运行较旧版本的Mojarra。您有2个选项:

  1. 在生产服务器中升级Mojarra版本。它的currently已经在2.1.14。
  2. 确保您的<h:outputFormat>组件中没有任何一个组件通过有条件地仅在值为not empty时才有效地获得null值。
相关问题