应用程序在启动时未正确初始化(JSF 1.2,WS 7)

时间:2012-01-24 09:36:21

标签: jsf websphere-7

我使用jsf 1.2开发了一个应用程序。它与apache tomcat 6一起工作正常。我使用websphere 7生成war文件并部署应用程序。我收到了以下错误。

E com.ibm.ws.webcontainer.servlet.ServletWrapper init SRVE0100E: Uncaught init() 
exception created by servlet Faces Servlet in application Products_war:  
java.lang.IllegalStateException: Application was not properly initialized at startup,  
could not find Factory: javax.faces.context.FacesContextFactory  

我的classpath文件包含以下条目

<?xml version="1.0" encoding="UTF-8"?>  
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" 
path="org.eclipse.jdt.launching.JRE_CONTAINER/
org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jre6"/>
<classpathentry kind="con" 
path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget
/Apache Tomcat v6.0"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
<classpathentry kind="output" path="build/classes"/>
</classpath>

我在google搜索到现在之后做了以下尝试..

including following listener in web.xml
<listener>   
    <listener-class>com.sun.faces.config.ConfigureListener</listener-class>   
</listener>   

并从我的应用程序的lib文件夹中删除了jsf-api和jsf-impl,但无济于事。

PLZ帮助。
提前谢谢

2 个答案:

答案 0 :(得分:1)

WAS 7已附带捆绑的JSF 1.2,它可以是“Sun RI”(Mojarra)或“MyFaces”(来自Apache)实现,可在WAS管理控制台中配置。您需要从/WEB-INF/lib中删除JSF JAR文件,并且需要从web.xml中删除侦听器。

另见:

答案 1 :(得分:0)

要检查的另一件事是:我们将myfaces配置为WebSphere上的共享库。在对本地配置进行故障排除时,我必须将共享库设置为“为此共享库使用隔离的类加载器

这被确定为运行第三方JSF实施者的要求的一部分:

要注意:如果您想使用产品未附带的第三方JSF实施,那么:

  1. 将配置设置为SUN RI。
  2. 将第三方侦听器添加到所需的web.xml文件中。
  3. 将第三方实现Java归档(JAR)文件添加到 应用程序作为独立的共享库。
  4. http://pic.dhe.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websphere.express.doc/info/exp/ae/tweb_jsf.html

    如果第一个答案对他们不起作用,也许这会对某人有所帮助。