Eclipse ICEfaces:没有为此应用程序异常配置工厂

Eclipse ICEfaces:没有为此应用程序异常配置工厂,eclipse,jsf,jsf-1.2,icefaces,icefaces-1.8,Eclipse,Jsf,Jsf 1.2,Icefaces,Icefaces 1.8,我正在尝试使用JSF1.2和ICEfaces 1.8运行一个简单的“Hello World”应用程序。 我已经使用ICEFaces插件下载了Galileo的所有JAR,MyFaces库: backport-util-concurrent.jar commons-beanutils-1.7.0.jar commons-codec-1.3.jar commons-collections-3.2.jar commons-digester-1.8.jar commons-discovery-0.4.j

我正在尝试使用JSF1.2和ICEfaces 1.8运行一个简单的“Hello World”应用程序。 我已经使用ICEFaces插件下载了Galileo的所有JAR,MyFaces库:

  • backport-util-concurrent.jar
  • commons-beanutils-1.7.0.jar
  • commons-codec-1.3.jar
  • commons-collections-3.2.jar
  • commons-digester-1.8.jar
  • commons-discovery-0.4.jar
  • commons-fileupload.jar
  • commons-logging-1.1.1.jar
  • FastInfoset.jar
  • 冰面罐
  • icefaces-comps.jar
  • jstl.jar
  • jxl.jar
  • krysalis-jCharts-1.0.0-alpha-1.jar
  • myfaces-api-1.2.9.jar
  • myfaces-impl-1.2.9.jar
  • standard.jar
  • ui.jar
将它们添加到lib文件夹,并生成路径

My web.xml文件:

<?xml version="1.0" encoding="UTF-8" ?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
  <display-name>HelloWorld(ICE)</display-name>
  <welcome-file-list>
   <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <context-param>
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    <param-value>server</param-value>
  </context-param>
  <context-param>
    <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
    <param-value>.jspx</param-value>
  </context-param>
  <context-param>
    <description>To allow multiple windows for a single application.</description>
    <param-name>com.icesoft.faces.concurrentDOMViews</param-name>
    <param-value>false</param-value>
  </context-param>
  <context-param>
    <description>Turn on/off application-wide synchronous or asynchronous updates.</description>
    <param-name>com.icesoft.faces.synchronousUpdate</param-name>
    <param-value>false</param-value>
  </context-param>
  <context-param>
    <description>Google Maps API key is required if gMap component is used. Sign up for an API key from http://code.google.com/apis/maps/signup.html</description>
    <param-name>com.icesoft.faces.gmapKey</param-name>
    <param-value>ABQIAAAADlu0ZiSTam64EKaCQr9eTRTOTuQNzJNXRlYRLknj4cQ89tFfpxTEqxQnVWL4k55OPICgF5_SOZE06A</param-value>
  </context-param>
  <context-param>
    <param-name>com.icesoft.faces.uploadDirectory</param-name>
    <param-value>upload</param-value>
  </context-param>
  <context-param>
    <param-name>com.icesoft.faces.uploadMaxFileSize</param-name>
    <param-value>4048576</param-value>
  </context-param>
  <servlet>
    <servlet-name>Persistent Faces Servlet</servlet-name>
    <servlet-class>com.icesoft.faces.webapp.xmlhttp.PersistentFacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Persistent Faces Servlet</servlet-name>
    <url-pattern>*.iface</url-pattern>
    <url-pattern>*.jspx</url-pattern>
    <url-pattern>*.jsf</url-pattern>
    <url-pattern>/xmlhttp/*</url-pattern>
    <url-pattern>/faces/*</url-pattern>
  </servlet-mapping>
  <servlet>
    <servlet-name>Blocking Servlet</servlet-name>
    <servlet-class>com.icesoft.faces.webapp.xmlhttp.BlockingServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Blocking Servlet</servlet-name>
    <url-pattern>/block/*</url-pattern>
  </servlet-mapping>
  <servlet>
    <servlet-name>uploadServlet</servlet-name>
    <servlet-class>com.icesoft.faces.component.inputfile.FileUploadServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>uploadServlet</servlet-name>
    <url-pattern>/uploadHtml</url-pattern>
  </servlet-mapping>
  <listener>
    <listener-class>com.icesoft.faces.util.event.servlet.ContextEventRepeater</listener-class>
  </listener>
</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_1_2.xsd" version="1.2">
  <application>
    <view-handler>com.icesoft.faces.facelets.D2DFaceletViewHandler</view-handler>
  </application>
</faces-config>

地狱世界(冰)
index.jsp
Facesservlet
javax.faces.webapp.FacesServlet
1.
javax.faces.STATE_保存方法
服务器
javax.faces.DEFAULT_后缀
.jspx
为单个应用程序允许多个窗口。
com.icesoft.faces.concurrentDOMViews
假的
打开/关闭应用程序范围的同步或异步更新。
com.icesoft.faces.synchronousUpdate
假的
如果使用gMap组件,则需要Google Maps API密钥。从注册API密钥http://code.google.com/apis/maps/signup.html
com.icesoft.faces.gmapKey
ABQIAAADLU0ZISTAM64EKACQR9ETRTOTUQNZJNZRYRLKNJ4CQ89TFFPXTEQQNVWL4K55OPICGF5_SOZE06A
com.icesoft.faces.uploadDirectory
上传
com.icesoft.faces.uploadMaxFileSize
4048576
持久面Servlet
com.icesoft.faces.webapp.xmlhttp.PersistentFacesServlet
1.
持久面Servlet
*伊法斯先生
*.jspx
*.jsf
/xmlhttp/*
/面孔/*
阻塞Servlet
com.icesoft.faces.webapp.xmlhttp.BlockingServlet
1.
阻塞Servlet
/挡块/*
上传servlet
com.icesoft.faces.component.inputfile.FileUploadServlet
1.
上传servlet
/上传HTML
com.icesoft.faces.util.event.servlet.ContextEventRepeater
My faces-config.xml文件:

<?xml version="1.0" encoding="UTF-8" ?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
  <display-name>HelloWorld(ICE)</display-name>
  <welcome-file-list>
   <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <context-param>
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    <param-value>server</param-value>
  </context-param>
  <context-param>
    <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
    <param-value>.jspx</param-value>
  </context-param>
  <context-param>
    <description>To allow multiple windows for a single application.</description>
    <param-name>com.icesoft.faces.concurrentDOMViews</param-name>
    <param-value>false</param-value>
  </context-param>
  <context-param>
    <description>Turn on/off application-wide synchronous or asynchronous updates.</description>
    <param-name>com.icesoft.faces.synchronousUpdate</param-name>
    <param-value>false</param-value>
  </context-param>
  <context-param>
    <description>Google Maps API key is required if gMap component is used. Sign up for an API key from http://code.google.com/apis/maps/signup.html</description>
    <param-name>com.icesoft.faces.gmapKey</param-name>
    <param-value>ABQIAAAADlu0ZiSTam64EKaCQr9eTRTOTuQNzJNXRlYRLknj4cQ89tFfpxTEqxQnVWL4k55OPICgF5_SOZE06A</param-value>
  </context-param>
  <context-param>
    <param-name>com.icesoft.faces.uploadDirectory</param-name>
    <param-value>upload</param-value>
  </context-param>
  <context-param>
    <param-name>com.icesoft.faces.uploadMaxFileSize</param-name>
    <param-value>4048576</param-value>
  </context-param>
  <servlet>
    <servlet-name>Persistent Faces Servlet</servlet-name>
    <servlet-class>com.icesoft.faces.webapp.xmlhttp.PersistentFacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Persistent Faces Servlet</servlet-name>
    <url-pattern>*.iface</url-pattern>
    <url-pattern>*.jspx</url-pattern>
    <url-pattern>*.jsf</url-pattern>
    <url-pattern>/xmlhttp/*</url-pattern>
    <url-pattern>/faces/*</url-pattern>
  </servlet-mapping>
  <servlet>
    <servlet-name>Blocking Servlet</servlet-name>
    <servlet-class>com.icesoft.faces.webapp.xmlhttp.BlockingServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Blocking Servlet</servlet-name>
    <url-pattern>/block/*</url-pattern>
  </servlet-mapping>
  <servlet>
    <servlet-name>uploadServlet</servlet-name>
    <servlet-class>com.icesoft.faces.component.inputfile.FileUploadServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>uploadServlet</servlet-name>
    <url-pattern>/uploadHtml</url-pattern>
  </servlet-mapping>
  <listener>
    <listener-class>com.icesoft.faces.util.event.servlet.ContextEventRepeater</listener-class>
  </listener>
</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_1_2.xsd" version="1.2">
  <application>
    <view-handler>com.icesoft.faces.facelets.D2DFaceletViewHandler</view-handler>
  </application>
</faces-config>

com.icesoft.faces.facelets.D2DFaceletViewHandler
index.jsp:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" %>
  <%@ taglib prefix="f" uri="http://java.sun.com/jsf/core" %>
    <%@ taglib prefix="h" uri="http://java.sun.com/jsf/html" %>
      <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
      <html>

      <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
        <title>Insert title here</title>
      </head>

      <body>
        <jsp:forward page="ICEfacesPage.iface" />
      </body>

      </html>

在此处插入标题
ICEfacesPage.jspx:


ICEfaces,用于JavaEE的Ajax
例外情况:

Servlet.service() for servlet Persistent Faces Servlet threw exception java.lang.IllegalStateException: No Factories configured for this Application. This happens if the faces-initialization does not work at all - make sure that you properly include all
configuration settings necessary for a basic faces application and that all the necessary libs are included. Also check the logging output of your web application and your container for any exceptions! If you did that and find nothing, the mistake might
be due to the fact that you use some special web-containers which do not support registering context-listeners via TLD files and a context listener is not setup in your web.xml. A typical config looks like this;
<listener>
  <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
</listener>

at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:106) at com.icesoft.faces.webapp.http.core.ReceiveSendUpdates.
<clinit>(ReceiveSendUpdates.java:38) at com.icesoft.faces.webapp.http.servlet.MainSessionBoundServlet.
  <init>(MainSessionBoundServlet.java:136) at com.icesoft.faces.webapp.http.servlet.MainServlet$3.newServer(MainServlet.java:87) at com.icesoft.faces.webapp.http.servlet.SessionDispatcher.checkSession(SessionDispatcher.java:86) at com.icesoft.faces.webapp.http.servlet.SessionDispatcher.service(SessionDispatcher.java:45)
    at com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:23) at com.icesoft.faces.webapp.http.servlet.MainServlet.service(MainServlet.java:131) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302) at org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:709)
    at org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:680) at org.apache.jsp.index_jsp._jspService(index_jsp.java:64) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Unknown Source)
Servlet持久面的
Servlet.service()Servlet引发异常java.lang.IllegalStateException:没有为此应用程序配置工厂。如果面初始化根本不起作用,则会发生这种情况-请确保正确包含所有面
基本faces应用程序所需的配置设置,以及包括所有必要的LIB。还要检查web应用程序和容器的日志输出是否存在任何异常!如果你那样做了,却什么也没发现,那就可能出错
这可能是因为您使用了一些特殊的web容器,这些容器不支持通过TLD文件注册上下文侦听器,并且您的web.xml中没有设置上下文侦听器。一个典型的配置如下所示;
org.apache.myfaces.webapp.StartupServletContextListener
位于com.icesoft.faces.webapp.http.core.ReceiveSendUpdates的javax.faces.FactoryFinder.getFactory(FactoryFinder.java:106)。
(ReceiveSendUpdates.java:38)位于com.icesoft.faces.webapp.http.servlet.MainSessionBoundServlet。
(MainSessionBoundServlet.java:136)在com.icesoft.faces.webapp.http.servlet.MainServlet$3.newServer(MainServlet.java:87)在com.icesoft.faces.webapp.http.servlet.SessionDispatcher.checkSession(SessionDispatcher.java:86)在com.icesoft.faces.webapp.http.servlet.SessionDispatcher.service(SessionDispatcher.java:45)
在com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:23)在com.icesoft.faces.webapp.http.servlet.MainServlet.service(MainServlet.java:131)在javax.servlet.http.HttpServlet.service(HttpServlet.java:717)在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)上
在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)在org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)在org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)上
在org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)在org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)在org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:709)上
位于org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:680)处,位于org.apache.jsp.index_jsp.jsp._jspService(index_jsp.java:64)处,位于org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)处,位于javax.servlet.http.HttpServlet.java:717处
在org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386)在org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)在org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)在javax.servlet.http.HttpServlet.service(HttpServlet.java:717)上
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
在org.apache.catalina.core上。