带有ICEFaces 3.3.0:ace:fileEntry和icepush的Liferay Portlet 6.1.20

带有ICEFaces 3.3.0:ace:fileEntry和icepush的Liferay Portlet 6.1.20,liferay,portlet,icefaces,icepush,Liferay,Portlet,Icefaces,Icepush,我正在为Liferay编写一个Portlet,需要ace:fileEntry组件。我已经有一些问题我终于能够解决了。但现在我面临一个我无法理解的问题 打开包含ace:fileEntry的查看页面时,在正负90秒后,将显示一个弹出窗口,其中显示消息“网络连接中断”,我必须重新加载页面。 经过一些研究,我在浏览器控制台中发现了以下几行内容: [icepush.0086c.async-connection] closing previous connection... [icepush.0086c.a

我正在为Liferay编写一个Portlet,需要ace:fileEntry组件。我已经有一些问题我终于能够解决了。但现在我面临一个我无法理解的问题

打开包含ace:fileEntry的查看页面时,在正负90秒后,将显示一个弹出窗口,其中显示消息“网络连接中断”,我必须重新加载页面。 经过一些研究,我在浏览器控制台中发现了以下几行内容:

[icepush.0086c.async-connection] closing previous connection...
[icepush.0086c.async-connection] connect...
[icepush.0086c.async-connection] empty response received
[icepush.0086c.async-connection] closing previous connection...
[icepush.0086c.async-connection] connect...
[icepush.0086c.async-connection] empty response received
[icepush.0086c.async-connection] closing previous connection...
[icepush.0086c.async-connection] connect...
[icepush.0086c.async-connection] empty response received
[icepush.0086c.async-connection] blocking connection stopped, too many empty responses received...
[icepush.0086c.async-connection] failed to connect, first retry...
[icepush.0086c] connection in trouble
[icepush.0086c.async-connection] closing previous connection...
[icepush.0086c.async-connection] connect...
[icepush.0086c.async-connection] empty response received
[icepush.0086c.async-connection] blocking connection stopped, too many empty responses received...
[icepush.0086c.async-connection] failed to connect, second retry...
[icepush.0086c] connection in trouble
[icepush.0086c.async-connection] closing previous connection...
[icepush.0086c.async-connection] connect...
[icepush.0086c.async-connection] empty response received
[icepush.0086c.async-connection] blocking connection stopped, too many empty responses received...
[icepush.0086c] connection to server was lost
我正在使用以下版本的Liferay和ICEFaces:

  • Liferay Portal 6.1.20-EE-GA2
  • Liferay Faces Bridge Impl 3.1.2-ga3
  • 冰面3.3.0
My web.xml如下所示:

<?xml version="1.0"?>

<web-app
    version="3.0"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
>
    <listener>
       <listener-class>
          org.springframework.web.context.ContextLoaderListener
       </listener-class>
    </listener>
    <listener>
       <listener-class>
          org.springframework.web.context.request.RequestContextListener
       </listener-class>
    </listener>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/applicationContext.xml</param-value>
    </context-param>
    <!-- Instruct Mojarra to utilize JBoss-EL instead of the EL implementation provided by the servlet container. -->
    <context-param>
        <param-name>com.sun.faces.expressionFactory</param-name>
        <param-value>org.jboss.el.ExpressionFactoryImpl</param-value>
    </context-param>
    <!-- Instruct ICEfaces to abstain from adding a random query parameter to resource URLs (which it does by default -->
    <!-- in order to prevent caching of JavaScript resources like bridge.js in a servlet-based webapp). -->
    <context-param>
        <param-name>org.icefaces.uniqueResourceURLs</param-name>
        <param-value>false</param-value>
    </context-param>
    <!-- Production wegen Test ob bestimmte Messages verschwinden -->
    <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Production</param-value>
    </context-param>
    <context-param>
      <param-name>com.icesoft.faces.concurrentDOMViews</param-name>
      <param-value>true</param-value>
    </context-param>
    <context-param>
        <param-name>org.icefaces.mandatoryResourceConfiguration</param-name>
        <param-value>dataTable richTextEntry fileEntry</param-value>
    </context-param>
    <!-- Although the FacesServlet will not be invoked by any portlet requests, it is required to initialize JSF. -->
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>/icefaces/*</url-pattern> 
    </servlet-mapping>
    <servlet>
        <servlet-name>Resource Servlet</servlet-name>
        <servlet-class>com.icesoft.faces.webapp.CompatResourceServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Resource Servlet</servlet-name>
        <url-pattern>/xmlhttp/*</url-pattern>
    </servlet-mapping>
    <resource-ref>
        <res-ref-name>mail/MailSession</res-ref-name>
        <res-type>javax.mail.Session</res-type>
        <res-auth>Container</res-auth>
    </resource-ref>
</web-app>
<?xml version="1.0" encoding="UTF-8"?>
<faces-config
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
    version="2.0">
        <application>
            <el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
        </application>
        <lifecycle>
            <phase-listener>com.liferay.faces.util.lifecycle.DebugPhaseListener</phase-listener>
            <phase-listener>com.liferay.faces.util.lifecycle.ViewScopePhaseListener</phase-listener>
        </lifecycle>
        <navigation-rule>
            <from-view-id>/views/*</from-view-id>
            <navigation-case>
                <from-outcome>warenkorb</from-outcome>
                <to-view-id>/views/warenkorb.xhtml</to-view-id>
            </navigation-case>
            <navigation-case>
                <from-outcome>checkout</from-outcome>
                <to-view-id>/views/bestellprozess.xhtml</to-view-id>
            </navigation-case>
            <navigation-case>
                <from-outcome>bestelluebersicht</from-outcome>
                <to-view-id>/views/bestelluebersicht.xhtml</to-view-id>
            </navigation-case>
            <navigation-case>
                <to-view-id>/views/index.xhtml</to-view-id>
            </navigation-case>
        </navigation-rule>
        <navigation-rule>
            <from-view-id>/adminviews/*</from-view-id>
            <navigation-case>
                <from-outcome>neueKategorie</from-outcome>
                <to-view-id>/adminviews/neueKategorie.xhtml</to-view-id>
            </navigation-case>
            <navigation-case>
                <from-outcome>verwaltungKategorie</from-outcome>
                <to-view-id>/adminviews/verwaltungKategorie.xhtml</to-view-id>
            </navigation-case>
            <navigation-case>
                <from-outcome>neuerArtikel</from-outcome>
                <to-view-id>/adminviews/neuerArtikel.xhtml</to-view-id>
            </navigation-case>
            <navigation-case>
                <from-outcome>absenderMail</from-outcome>
                <to-view-id>/adminviews/absenderMail.xhtml</to-view-id>
            </navigation-case>
            <navigation-case>
                <from-outcome>bestaetigungsMail</from-outcome>
                <to-view-id>/adminviews/bestaetigungsMail.xhtml</to-view-id>
            </navigation-case>
            <navigation-case>
                <to-view-id>/adminviews/index.xhtml</to-view-id>
            </navigation-case>
        </navigation-rule>
</faces-config>
<?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:ace="http://www.icefaces.org/icefaces/components"
        xmlns:ice="http://www.icesoft.com/icefaces/component"
        xmlns:f="http://java.sun.com/jsf/core"
        xmlns:h="http://java.sun.com/jsf/html"
        xmlns:ui="http://java.sun.com/jsf/facelets">
    <h:body>
        <ui:composition template="/adminviews/index.xhtml">
            <ui:define name="content">
                <ace:panel header="Neuen Artikel anlegen">
                    <ice:form>
                        <ace:textEntry  id="artikelnr"
                                    label="Artikelnummer:"
                                    labelPosition="left"
                                    required="true"
                                    requiredMessage="required"
                                    value="#{addingBean.newArtikel.artikelnummer}">
                        </ace:textEntry>
                        <br />
                        <ace:textEntry  id="bezeichnung"
                                    label="Bezeichnung:"
                                    labelPosition="left"
                                    required="true"
                                    requiredMessage="required"
                                    value="#{addingBean.newArtikel.bezeichnung}">
                        </ace:textEntry>
                        <br />
                        <ace:textEntry  id="preis"
                                    label="Einzelpreis (netto):"
                                    labelPosition="left"
                                    required="true"
                                    requiredMessage="required"
                                    value="#{addingBean.newArtikel.preis1}">
                        </ace:textEntry>
                        <br />
                        <ace:textEntry  id="bestand"
                                    label="Bestand:"
                                    labelPosition="left"
                                    required="true"
                                    requiredMessage="required"
                                    value="#{addingBean.newArtikel.bestand}">
                        </ace:textEntry>
                        <br />
                        <ace:textAreaEntry  id="beschreibung"
                                    label="Beschreibung:"
                                    labelPosition="left"
                                    value="#{addingBean.newArtikel.beschreibung}">
                        </ace:textAreaEntry>
                        <br />
                        <ace:simpleSelectOneMenu label="Steuerschlüssel:"
                                                labelPosition="left"
                                                value="#{addingBean.steuerId}"
                                                required="true">
                            <f:selectItem itemValue="" itemLabel="bitte auswählen ..." />
                            <f:selectItems value="#{requestBean.allSteuerItems}"/>
                        </ace:simpleSelectOneMenu>
                        <br />
                        <ace:simpleSelectOneMenu label="Kategorie:"
                                                labelPosition="left"
                                                value="#{addingBean.kategorieId}">
                            <f:selectItem itemValue="null" itemLabel="keine Kategorie" />
                            <f:selectItems value="#{requestBean.allKategorieItems}" />
                        </ace:simpleSelectOneMenu>
                        <br />
                        <ice:commandButton value="Speichern"
                                    actionListener="#{addingBean.addArtikel}"
                                    action="default"/>
                    </ice:form>
                    <ice:form>
                        <ice:commandButton value="Abbrechen"
                                            action="default"/>
                    </ice:form>
                    <h:form id="bildupload">
                        <ace:fileEntry id="bild"
                                    label="Bildupload"
                                    fileEntryListener="#{addingBean.bildListener}"
                                    maxFileCount="1"
                                    relativePath="/images/"/>
                        <h:commandButton value="Upload"/>
                    </h:form>
                    <ace:messages/>
                </ace:panel>
            </ui:define>
        </ui:composition>
    </h:body>
</html>

org.springframework.web.context.ContextLoaderListener
org.springframework.web.context.request.RequestContextListener
上下文配置位置
/WEB-INF/applicationContext.xml
com.sun.faces.expressionFactory
org.jboss.el.ExpressionFactoryImpl
org.icefaces.uniqueResourceURLs
假的
javax.faces.PROJECT_阶段
生产
com.icesoft.faces.concurrentDOMViews
真的
org.icefaces.mandatoryResourceConfiguration
dataTable richTextEntry文件项
Facesservlet
javax.faces.webapp.FacesServlet
1.
Facesservlet
/冰面/*
资源Servlet
com.icesoft.faces.webapp.CompatResourceServlet
1.
资源Servlet
/xmlhttp/*
邮件/邮件会话
javax.mail.Session
容器
My face-config.xml如下所示:

<?xml version="1.0"?>

<web-app
    version="3.0"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
>
    <listener>
       <listener-class>
          org.springframework.web.context.ContextLoaderListener
       </listener-class>
    </listener>
    <listener>
       <listener-class>
          org.springframework.web.context.request.RequestContextListener
       </listener-class>
    </listener>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/applicationContext.xml</param-value>
    </context-param>
    <!-- Instruct Mojarra to utilize JBoss-EL instead of the EL implementation provided by the servlet container. -->
    <context-param>
        <param-name>com.sun.faces.expressionFactory</param-name>
        <param-value>org.jboss.el.ExpressionFactoryImpl</param-value>
    </context-param>
    <!-- Instruct ICEfaces to abstain from adding a random query parameter to resource URLs (which it does by default -->
    <!-- in order to prevent caching of JavaScript resources like bridge.js in a servlet-based webapp). -->
    <context-param>
        <param-name>org.icefaces.uniqueResourceURLs</param-name>
        <param-value>false</param-value>
    </context-param>
    <!-- Production wegen Test ob bestimmte Messages verschwinden -->
    <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Production</param-value>
    </context-param>
    <context-param>
      <param-name>com.icesoft.faces.concurrentDOMViews</param-name>
      <param-value>true</param-value>
    </context-param>
    <context-param>
        <param-name>org.icefaces.mandatoryResourceConfiguration</param-name>
        <param-value>dataTable richTextEntry fileEntry</param-value>
    </context-param>
    <!-- Although the FacesServlet will not be invoked by any portlet requests, it is required to initialize JSF. -->
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>/icefaces/*</url-pattern> 
    </servlet-mapping>
    <servlet>
        <servlet-name>Resource Servlet</servlet-name>
        <servlet-class>com.icesoft.faces.webapp.CompatResourceServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Resource Servlet</servlet-name>
        <url-pattern>/xmlhttp/*</url-pattern>
    </servlet-mapping>
    <resource-ref>
        <res-ref-name>mail/MailSession</res-ref-name>
        <res-type>javax.mail.Session</res-type>
        <res-auth>Container</res-auth>
    </resource-ref>
</web-app>
<?xml version="1.0" encoding="UTF-8"?>
<faces-config
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
    version="2.0">
        <application>
            <el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
        </application>
        <lifecycle>
            <phase-listener>com.liferay.faces.util.lifecycle.DebugPhaseListener</phase-listener>
            <phase-listener>com.liferay.faces.util.lifecycle.ViewScopePhaseListener</phase-listener>
        </lifecycle>
        <navigation-rule>
            <from-view-id>/views/*</from-view-id>
            <navigation-case>
                <from-outcome>warenkorb</from-outcome>
                <to-view-id>/views/warenkorb.xhtml</to-view-id>
            </navigation-case>
            <navigation-case>
                <from-outcome>checkout</from-outcome>
                <to-view-id>/views/bestellprozess.xhtml</to-view-id>
            </navigation-case>
            <navigation-case>
                <from-outcome>bestelluebersicht</from-outcome>
                <to-view-id>/views/bestelluebersicht.xhtml</to-view-id>
            </navigation-case>
            <navigation-case>
                <to-view-id>/views/index.xhtml</to-view-id>
            </navigation-case>
        </navigation-rule>
        <navigation-rule>
            <from-view-id>/adminviews/*</from-view-id>
            <navigation-case>
                <from-outcome>neueKategorie</from-outcome>
                <to-view-id>/adminviews/neueKategorie.xhtml</to-view-id>
            </navigation-case>
            <navigation-case>
                <from-outcome>verwaltungKategorie</from-outcome>
                <to-view-id>/adminviews/verwaltungKategorie.xhtml</to-view-id>
            </navigation-case>
            <navigation-case>
                <from-outcome>neuerArtikel</from-outcome>
                <to-view-id>/adminviews/neuerArtikel.xhtml</to-view-id>
            </navigation-case>
            <navigation-case>
                <from-outcome>absenderMail</from-outcome>
                <to-view-id>/adminviews/absenderMail.xhtml</to-view-id>
            </navigation-case>
            <navigation-case>
                <from-outcome>bestaetigungsMail</from-outcome>
                <to-view-id>/adminviews/bestaetigungsMail.xhtml</to-view-id>
            </navigation-case>
            <navigation-case>
                <to-view-id>/adminviews/index.xhtml</to-view-id>
            </navigation-case>
        </navigation-rule>
</faces-config>
<?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:ace="http://www.icefaces.org/icefaces/components"
        xmlns:ice="http://www.icesoft.com/icefaces/component"
        xmlns:f="http://java.sun.com/jsf/core"
        xmlns:h="http://java.sun.com/jsf/html"
        xmlns:ui="http://java.sun.com/jsf/facelets">
    <h:body>
        <ui:composition template="/adminviews/index.xhtml">
            <ui:define name="content">
                <ace:panel header="Neuen Artikel anlegen">
                    <ice:form>
                        <ace:textEntry  id="artikelnr"
                                    label="Artikelnummer:"
                                    labelPosition="left"
                                    required="true"
                                    requiredMessage="required"
                                    value="#{addingBean.newArtikel.artikelnummer}">
                        </ace:textEntry>
                        <br />
                        <ace:textEntry  id="bezeichnung"
                                    label="Bezeichnung:"
                                    labelPosition="left"
                                    required="true"
                                    requiredMessage="required"
                                    value="#{addingBean.newArtikel.bezeichnung}">
                        </ace:textEntry>
                        <br />
                        <ace:textEntry  id="preis"
                                    label="Einzelpreis (netto):"
                                    labelPosition="left"
                                    required="true"
                                    requiredMessage="required"
                                    value="#{addingBean.newArtikel.preis1}">
                        </ace:textEntry>
                        <br />
                        <ace:textEntry  id="bestand"
                                    label="Bestand:"
                                    labelPosition="left"
                                    required="true"
                                    requiredMessage="required"
                                    value="#{addingBean.newArtikel.bestand}">
                        </ace:textEntry>
                        <br />
                        <ace:textAreaEntry  id="beschreibung"
                                    label="Beschreibung:"
                                    labelPosition="left"
                                    value="#{addingBean.newArtikel.beschreibung}">
                        </ace:textAreaEntry>
                        <br />
                        <ace:simpleSelectOneMenu label="Steuerschlüssel:"
                                                labelPosition="left"
                                                value="#{addingBean.steuerId}"
                                                required="true">
                            <f:selectItem itemValue="" itemLabel="bitte auswählen ..." />
                            <f:selectItems value="#{requestBean.allSteuerItems}"/>
                        </ace:simpleSelectOneMenu>
                        <br />
                        <ace:simpleSelectOneMenu label="Kategorie:"
                                                labelPosition="left"
                                                value="#{addingBean.kategorieId}">
                            <f:selectItem itemValue="null" itemLabel="keine Kategorie" />
                            <f:selectItems value="#{requestBean.allKategorieItems}" />
                        </ace:simpleSelectOneMenu>
                        <br />
                        <ice:commandButton value="Speichern"
                                    actionListener="#{addingBean.addArtikel}"
                                    action="default"/>
                    </ice:form>
                    <ice:form>
                        <ice:commandButton value="Abbrechen"
                                            action="default"/>
                    </ice:form>
                    <h:form id="bildupload">
                        <ace:fileEntry id="bild"
                                    label="Bildupload"
                                    fileEntryListener="#{addingBean.bildListener}"
                                    maxFileCount="1"
                                    relativePath="/images/"/>
                        <h:commandButton value="Upload"/>
                    </h:form>
                    <ace:messages/>
                </ace:panel>
            </ui:define>
        </ui:composition>
    </h:body>
</html>

org.springframework.web.jsf.el.SpringBeanFacesELResolver
com.liferay.faces.util.lifecycle.DebugPhaseListener
com.liferay.faces.util.lifecycle.ViewScopePhaseListener
/观点/*
瓦伦科布
/视图/warenkorb.xhtml
结账
/视图/bestellprozess.xhtml
贝斯特卢贝尔斯切特
/views/bestelluebersicht.xhtml
/views/index.xhtml
/管理员视图/*
新分类法
/AdminView/neueCategorie.xhtml
维瓦尔通卡泰戈里酒店
/adminviews/verwaltungKategorie.xhtml
诺埃拉蒂克尔
/adminviews/neuerArtikel.xhtml
absenderMail
/AdminView/absenderMail.xhtml
贝斯塔提贡斯梅尔酒店
/adminviews/bestaetigungsMail.xhtml
/adminviews/index.xhtml
放置ace:fileEntry的My viewpage.xhtml如下所示:

<?xml version="1.0"?>

<web-app
    version="3.0"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
>
    <listener>
       <listener-class>
          org.springframework.web.context.ContextLoaderListener
       </listener-class>
    </listener>
    <listener>
       <listener-class>
          org.springframework.web.context.request.RequestContextListener
       </listener-class>
    </listener>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/applicationContext.xml</param-value>
    </context-param>
    <!-- Instruct Mojarra to utilize JBoss-EL instead of the EL implementation provided by the servlet container. -->
    <context-param>
        <param-name>com.sun.faces.expressionFactory</param-name>
        <param-value>org.jboss.el.ExpressionFactoryImpl</param-value>
    </context-param>
    <!-- Instruct ICEfaces to abstain from adding a random query parameter to resource URLs (which it does by default -->
    <!-- in order to prevent caching of JavaScript resources like bridge.js in a servlet-based webapp). -->
    <context-param>
        <param-name>org.icefaces.uniqueResourceURLs</param-name>
        <param-value>false</param-value>
    </context-param>
    <!-- Production wegen Test ob bestimmte Messages verschwinden -->
    <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Production</param-value>
    </context-param>
    <context-param>
      <param-name>com.icesoft.faces.concurrentDOMViews</param-name>
      <param-value>true</param-value>
    </context-param>
    <context-param>
        <param-name>org.icefaces.mandatoryResourceConfiguration</param-name>
        <param-value>dataTable richTextEntry fileEntry</param-value>
    </context-param>
    <!-- Although the FacesServlet will not be invoked by any portlet requests, it is required to initialize JSF. -->
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>/icefaces/*</url-pattern> 
    </servlet-mapping>
    <servlet>
        <servlet-name>Resource Servlet</servlet-name>
        <servlet-class>com.icesoft.faces.webapp.CompatResourceServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Resource Servlet</servlet-name>
        <url-pattern>/xmlhttp/*</url-pattern>
    </servlet-mapping>
    <resource-ref>
        <res-ref-name>mail/MailSession</res-ref-name>
        <res-type>javax.mail.Session</res-type>
        <res-auth>Container</res-auth>
    </resource-ref>
</web-app>
<?xml version="1.0" encoding="UTF-8"?>
<faces-config
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
    version="2.0">
        <application>
            <el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
        </application>
        <lifecycle>
            <phase-listener>com.liferay.faces.util.lifecycle.DebugPhaseListener</phase-listener>
            <phase-listener>com.liferay.faces.util.lifecycle.ViewScopePhaseListener</phase-listener>
        </lifecycle>
        <navigation-rule>
            <from-view-id>/views/*</from-view-id>
            <navigation-case>
                <from-outcome>warenkorb</from-outcome>
                <to-view-id>/views/warenkorb.xhtml</to-view-id>
            </navigation-case>
            <navigation-case>
                <from-outcome>checkout</from-outcome>
                <to-view-id>/views/bestellprozess.xhtml</to-view-id>
            </navigation-case>
            <navigation-case>
                <from-outcome>bestelluebersicht</from-outcome>
                <to-view-id>/views/bestelluebersicht.xhtml</to-view-id>
            </navigation-case>
            <navigation-case>
                <to-view-id>/views/index.xhtml</to-view-id>
            </navigation-case>
        </navigation-rule>
        <navigation-rule>
            <from-view-id>/adminviews/*</from-view-id>
            <navigation-case>
                <from-outcome>neueKategorie</from-outcome>
                <to-view-id>/adminviews/neueKategorie.xhtml</to-view-id>
            </navigation-case>
            <navigation-case>
                <from-outcome>verwaltungKategorie</from-outcome>
                <to-view-id>/adminviews/verwaltungKategorie.xhtml</to-view-id>
            </navigation-case>
            <navigation-case>
                <from-outcome>neuerArtikel</from-outcome>
                <to-view-id>/adminviews/neuerArtikel.xhtml</to-view-id>
            </navigation-case>
            <navigation-case>
                <from-outcome>absenderMail</from-outcome>
                <to-view-id>/adminviews/absenderMail.xhtml</to-view-id>
            </navigation-case>
            <navigation-case>
                <from-outcome>bestaetigungsMail</from-outcome>
                <to-view-id>/adminviews/bestaetigungsMail.xhtml</to-view-id>
            </navigation-case>
            <navigation-case>
                <to-view-id>/adminviews/index.xhtml</to-view-id>
            </navigation-case>
        </navigation-rule>
</faces-config>
<?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:ace="http://www.icefaces.org/icefaces/components"
        xmlns:ice="http://www.icesoft.com/icefaces/component"
        xmlns:f="http://java.sun.com/jsf/core"
        xmlns:h="http://java.sun.com/jsf/html"
        xmlns:ui="http://java.sun.com/jsf/facelets">
    <h:body>
        <ui:composition template="/adminviews/index.xhtml">
            <ui:define name="content">
                <ace:panel header="Neuen Artikel anlegen">
                    <ice:form>
                        <ace:textEntry  id="artikelnr"
                                    label="Artikelnummer:"
                                    labelPosition="left"
                                    required="true"
                                    requiredMessage="required"
                                    value="#{addingBean.newArtikel.artikelnummer}">
                        </ace:textEntry>
                        <br />
                        <ace:textEntry  id="bezeichnung"
                                    label="Bezeichnung:"
                                    labelPosition="left"
                                    required="true"
                                    requiredMessage="required"
                                    value="#{addingBean.newArtikel.bezeichnung}">
                        </ace:textEntry>
                        <br />
                        <ace:textEntry  id="preis"
                                    label="Einzelpreis (netto):"
                                    labelPosition="left"
                                    required="true"
                                    requiredMessage="required"
                                    value="#{addingBean.newArtikel.preis1}">
                        </ace:textEntry>
                        <br />
                        <ace:textEntry  id="bestand"
                                    label="Bestand:"
                                    labelPosition="left"
                                    required="true"
                                    requiredMessage="required"
                                    value="#{addingBean.newArtikel.bestand}">
                        </ace:textEntry>
                        <br />
                        <ace:textAreaEntry  id="beschreibung"
                                    label="Beschreibung:"
                                    labelPosition="left"
                                    value="#{addingBean.newArtikel.beschreibung}">
                        </ace:textAreaEntry>
                        <br />
                        <ace:simpleSelectOneMenu label="Steuerschlüssel:"
                                                labelPosition="left"
                                                value="#{addingBean.steuerId}"
                                                required="true">
                            <f:selectItem itemValue="" itemLabel="bitte auswählen ..." />
                            <f:selectItems value="#{requestBean.allSteuerItems}"/>
                        </ace:simpleSelectOneMenu>
                        <br />
                        <ace:simpleSelectOneMenu label="Kategorie:"
                                                labelPosition="left"
                                                value="#{addingBean.kategorieId}">
                            <f:selectItem itemValue="null" itemLabel="keine Kategorie" />
                            <f:selectItems value="#{requestBean.allKategorieItems}" />
                        </ace:simpleSelectOneMenu>
                        <br />
                        <ice:commandButton value="Speichern"
                                    actionListener="#{addingBean.addArtikel}"
                                    action="default"/>
                    </ice:form>
                    <ice:form>
                        <ice:commandButton value="Abbrechen"
                                            action="default"/>
                    </ice:form>
                    <h:form id="bildupload">
                        <ace:fileEntry id="bild"
                                    label="Bildupload"
                                    fileEntryListener="#{addingBean.bildListener}"
                                    maxFileCount="1"
                                    relativePath="/images/"/>
                        <h:commandButton value="Upload"/>
                    </h:form>
                    <ace:messages/>
                </ace:panel>
            </ui:define>
        </ui:composition>
    </h:body>
</html>









你们中有人知道如何解决这个问题或者为什么会发生这种情况吗?

Liferay Faces团队在我们的一个测试环境中看到了这种情况,解决方法是从项目中排除icepush.jar依赖项:

<dependency>
    <groupId>org.icefaces</groupId>
    <artifactId>icefaces</artifactId>
    <version>3.3.0</version>
    <exclusions>
        <exclusion>
            <groupId>org.icepush</groupId>
            <artifactId>icepush</artifactId>
        </exclusion>
    </exclusions>
</dependency>

org.icefaces
冰面
3.3.0
org.icepush
冰推

似乎在排除icepush后工作,非常感谢!:)很抱歉,我不能投票支持你的答案,我的声誉太低了:Dnp,很高兴听到它有帮助。